oihana / php-system
ABANDONED - split into the oihana/php-* libraries, see the README
Requires
- php: >=8.4
- ext-fileinfo: *
- ext-imagick: *
- ext-pdo: *
- ext-zip: *
- matthiasmullie/scrapbook: ^1.5
- monolog/monolog: ^3.9
- oihana/php-core: dev-main
- oihana/php-enums: dev-main
- oihana/php-exceptions: dev-main
- oihana/php-files: dev-main
- oihana/php-reflect: dev-main
- oihana/php-schema: dev-main
- oihana/php-signals: dev-main
- oihana/php-standards: dev-main
- php-di/php-di: ^7.0
- psr/log: ^3.0
- psr/simple-cache: ^3.0
- slim/csrf: ^1.5
- slim/http-cache: ^1.2
- slim/psr7: ^1.7
- slim/slim: ^4.14
- slim/twig-view: ^3.4
- somnambulist/validation: ^1.12
- twig/extra-bundle: ^3.21
- twig/intl-extra: ^3.21
Requires (Dev)
- mikey179/vfsstream: ^1.6
- nunomaduro/collision: ^8.8
- phpdocumentor/shim: ^3.8
- phpunit/phpunit: ^12
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
⚠️ This library is abandoned
oihana/php-systemhas been split into focused libraries, listed below. It is no longer maintained, and the repository is archived. Do not require it in a new project.Its code stays here, frozen, for the record — but the libraries that replaced it have moved on since : the copies kept in this repository are outdated, and some carry defects fixed elsewhere.
Why
oihana/php-system bundled controllers, models, validation, routes, bootstrap, logging and traits in a
single package. A project needing only one of them pulled the whole stack — Slim, Twig, Somnambulist
validation, Scrapbook, Monolog. Each part now lives in its own library, with its own dependencies, tests,
documentation and releases.
Where each part went
Namespace in oihana/php-system |
Library to use |
|---|---|
oihana\controllers |
oihana/php-controllers |
oihana\models |
oihana/php-models |
oihana\validations |
oihana/php-validation |
oihana\routes |
oihana/php-routes |
oihana\init |
oihana/php-init |
oihana\logging |
oihana/php-logging |
oihana\traits, and oihana\date\traits\DateTrait (now oihana\traits\DateTrait) |
oihana/php-traits |
oihana\date\TimeInterval, oihana\graphics\AspectRatio, oihana\controllers\helpers\resolveDependency() |
oihana/php-core ≥ 1.3.0 — see below |
The classes that became functions
TimeInterval and AspectRatio had no user left; what they did is now a set of plain functions of
oihana/php-core :
| Former | Now, in oihana/php-core |
|---|---|
TimeInterval::parse(), toSeconds() |
oihana\core\date\durationToSeconds() |
TimeInterval->days / hours / minutes / seconds |
oihana\core\date\durationParts() |
TimeInterval::humanize() ("1h 42m") |
oihana\core\date\humanizeDuration() |
TimeInterval::formatted() ("1:42") |
oihana\core\date\formatDuration() — a colon string is now normalized : "90:00" gives "1:30:00" |
AspectRatio locked to a width or a height, AspectRatio::fromRatio() |
oihana\core\maths\aspectFit() |
AspectRatio::ratio() ("16:9") |
oihana\core\maths\aspectRatio() |
oihana\controllers\helpers\resolveDependency() |
oihana\core\container\resolveDependency() |
How to migrate
The namespaces did not change — except the date, the ratio and resolveDependency() above, which became
functions of oihana/php-core. Migrating is replacing the dependency in composer.json by the libraries a
project actually uses :
composer remove oihana/php-system
composer require oihana/php-controllers oihana/php-models
Then require only what the code imports : oihana/php-validation for oihana\validations,
oihana/php-routes for oihana\routes, and so on, as listed in the table above.
History
The last published version is 0.1.0 (2026-05-20). The changes listed under [Unreleased] in
CHANGELOG.md were never published in oihana/php-system : they were released in the
libraries extracted from it.
🧾 License
This project is licensed under the Mozilla Public License 2.0 (MPL-2.0).
👤 About the author
- Author: Marc ALCARAZ (aka eKameleon)
- Mail: marc@ooop.fr
- Website: http://www.ooop.fr
