This is the main monorepo for OrdinaryPHP, a modern PHP micro-framework.
- PHP 8.5 or higher
This monorepo contains multiple packages that are published to Packagist:
| Package | Description |
|---|---|
| ordinary/cli | CLI argument parser and subcommand router with typed parsed results and auto-generated help text |
| ordinary/config | Flat key/value configuration management with layered and pipeline resolution |
| ordinary/container | Dependency injection container with native lazy objects, autowiring, contextual bindings, and PSR-11 compliance |
| ordinary/error | PHP error and exception handler management |
| ordinary/log | Structured PSR-3 compatible logging with pluggable drivers and formatters |
| ordinary/router | HTTP router with a global parameter registry, named routes, URL generation, and attribute-based route discovery |
| ordinary/uid | Time-based, namespaced, sortable unique identifier (OUID) implementation |
composer installvendor/bin/phpunit# PHP-CS-Fixer
vendor/bin/php-cs-fixer fix
# PHP_CodeSniffer
vendor/bin/phpcs
# PHPStan
vendor/bin/phpstan analyse
# Psalm
vendor/bin/psalm
# Rector
vendor/bin/rector processShell into a PHP 8.5 environment with Composer and Xdebug pre-installed:
# Build the image (first time only)
docker-compose build
# Start a shell
docker-compose run --rm php sh
# Inside the container, you can use composer
composer install
composer test
# Xdebug is already enabled for debugging and coverageWhen creating pull requests, add one of the following labels to indicate the version bump:
version:major- Breaking changesversion:minor- New features (backward compatible)version:patch- Bug fixes and small improvements
The label will be used to automatically version the packages when the PR is merged.
MIT