Clemens Schwaighofer c5fed66237 PHP 8.5 fixes and updates
All tested with PHP 8.4 and PHP 8.3 too

Major changes:
- cube root Math (cbrt) now throws InvalidArgumentException if NAN is returned instead of returning NAN
- Byte convert from string to int will throw errors if value is too large (\LengthException)
- new flag for returning string type but for this bcmath must be installed (\RuntimeException if no bcmath)
- Updated curl class and remove close handler as not needed and deprecated as of PHP 8.5
- Curl phpunit tests: convert string to JSON convert flow for return content check (to avoid per PHP version check)
- image close handler for ImageMagick removed as not needed and deprecated as of PHP 8.5
- updated all check calls too use phive tools if possible (except phpunit) and all scripts can have dynamic php version set
2026-01-06 15:55:47 +09:00
2026-01-06 15:55:47 +09:00
2026-01-06 15:55:47 +09:00
2026-01-06 15:55:47 +09:00
2026-01-06 15:55:47 +09:00
2024-12-05 14:30:12 +09:00
2025-02-13 19:01:44 +09:00
2025-02-13 18:24:30 +09:00
2018-01-10 10:58:04 +09:00
2025-02-13 18:24:30 +09:00
2023-12-05 17:37:55 +09:00
2025-02-28 10:29:04 +09:00
2024-12-18 10:11:47 +09:00
2025-01-15 11:57:25 +09:00
2023-03-09 15:55:57 +09:00
2023-03-09 15:55:57 +09:00
2025-08-26 14:14:36 +09:00

PHP Core Library

Code Standard

  • Uses PSR-12
  • tab indent instead of 4 spaces indent

General information

Base PHP class files to setup any project

  • login
  • database wrapper
  • basic helper class for debugging and other features
  • admin/frontend split
  • domain controlled database/settings split
  • dynamic layout groups

NOTE

There are three branches:

master

The active branch, which is the namespace branch. Compatible with PHP 8.1 or higher

legacy (deprecated)

The old non namepsace format layout. This is fully deprecated and will no longer be maintaned. last tested PHP 5.6 and PHP 7.0

development

Any current development is done here

Static checks

With phpstan (4dev/checking/phpstan.sh) vendor/bin/phpstan

With phan (4dev/checking/phan.sh) vendor/bin/phan --progress-bar -C --analyze-twice

pslam is setup but not configured

Unit tests

With phpunit (4dev/checking/phpunit.sh) www/vendor/bin/phpunit -c $phpunit.xml 4dev/tests/

Other Notes

Session used

The following classes use _SESSION The main one is ACL\Login, this class will fail without a session started

  • \CoreLibs\ACL\Login
  • \CoreLibs\Admin\Backend
  • \CoreLibs\Output\Form\Generate
  • \CoreLibs\Output\Form\Token
  • \CoreLibs\Template\SmartyExtend

Class extends

The following classes extend these classes

  • \CoreLibs\ACL\Login extends \CoreLibs\DB\IO
  • \CoreLibs\Admin\Backend extends \CoreLibs\DB\IO
  • \CoreLibs\DB\Extended\ArrayIO extends \CoreLibs\DB\IO
  • \CoreLibs\Output\Form\Generate extends \CoreLibs\DB\Extended\ArrayIO
  • \CoreLibs\Template\SmartyExtend extends SmartyBC

Class used

The following classes use the following classes

  • \CoreLibs\ACL\Login uses \CoreLibs\Debug\Logging, \CoreLibs\Language\L10n
  • \CoreLibs\DB\IO uses \CoreLibs\Debug\Logging, \CoreLibs\DB\SQL\PgSQL
  • \CoreLibs\Admin\Backend uses \CoreLibs\Debug\Logging, \CoreLibs\Language\L10n
  • \CoreLibs\Output\Form\Generate uses \CoreLibs\Debug\Logging, \CoreLibs\Language\L10n
  • \CoreLibs\Template\SmartyExtend uses \CoreLibs\Language\L10n
  • \CoreLibs\Language\L10n uses FileReader, GetTextReader
  • \CoreLibs\Admin\EditBase uses \CoreLibs\Debug\Logging, \CoreLibs\Language\L10n

Class internal load

Loads classes internal (not passed in, not extend)

  • \CoreLibs\Admin\EditBase loads \CoreLibs\Template\SmartyExtend, \CoreLibs\Output\Form\Generate
  • \CoreLibs\Output\From\Generate loads \CoreLibs\Debug\Logging, \CoreLibs\Language\L10n if not passed on
  • \CoreLibs\Output\From\Generate loads \CoreLibs\Output\From\TableArrays

PHP unit testing and Intelephense

Intelephense can not directly read phar files so we do the following

In the workspace root we have .libs/, be in the workspace folder not the .libs/ folder

php -r "(new Phar('/path/to/.phive/phars/phpunit-9.6.13.phar'))->extractTo('.libs/phpunit/');"

andd add in vscode Intelephense > Enviroment: Include Paths (intelephense.environment.includePaths)

"intelephense.environment.includePaths": [
  "/.libs/phpunit/"
]

Add .libs to the master .gitingore

Update phpunit

On a version update the old phpunit folder in .libs has to be removed and the new version extracted again

Javascript

The original edit.js javascript functions are now in utils.js or utils.min.js.

The development for those files is located in a different repository

General: https://[service]/CodeBlocks/JavaScript.utils

Org: https://[serverice]/[org]/Code-Blocks.JavaScript.utils

Description
Main development folder for the CoreLibs for PHP This one is not for composer package creation, the composer base package source is in the "composer" repository
Readme GPL-3.0 34 MiB
Languages
JavaScript 51.6%
PHP 42.3%
PLpgSQL 2.2%
CSS 1.6%
Smarty 0.7%
Other 1.6%