saygoweb / anorm
Another ORM for PHP
v3.3.2
2026-10-21 08:25 UTC
Requires
- php: ^7.4 || ^8.0
- wp-cli/php-cli-tools: ^0.11.10
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-11-03 00:11:53 UTC
README
Yes, yet another ORM for PHP. This meets my needs for an ORM with the following characteristics:
- Works well with legacy databases.
- Provides (requires) a Model class which helps coding in IDEs.
- Creates and modifies the underlying database schema to match the Model during development. Types come from what your model declares, falling back to a guess from the values it holds — a starting point for a schema, not something to rely on in production. See Schema modes.
MODE_STATIC is the default and the production expectation: a schema that has been
dumped, corrected by hand and committed. MODE_DYNAMIC is a development aid.
Features
- Provides a tool 'anorm' for quickly generating models from existing tables, and
anorm schema:difffor checking a live schema against what the models imply — see Schema diff. - Maps between camelCase property names and under_score field names common in database schema.
- Makes CRUD operations extremely simple.
- Doesn't get in the way of complex queries.
- Optional lifecycle hook for change detection — see docs/_docs/lifecycle.md.
Documentation
Documentation is available on the docs site.
Development
Quick Start
# Install dependencies composer install # Run tests composer test # Run tests with coverage composer test:coverage # Check code quality composer quality
Requirements
- PHP 7.4+ (tested on 7.4 and 8.4)
- MySQL/MariaDB
- Composer
Available Commands
composer test- Run full test suitecomposer test:quick- Run tests without coveragecomposer test:coverage- Run tests with HTML coverage reportcomposer test:ci- Run tests with clover coverage for CIcomposer cs:check- Check code style (PSR-12)composer cs:fix- Fix code style issuescomposer analyze- Run static analysis (PHPStan)composer quality- Run all quality checkscomposer ci- Run full CI suite (tests + quality)
See DEVELOPERS.md for detailed development instructions.
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Run
composer cito ensure all tests pass and code quality is maintained - Submit a pull request
All pull requests are automatically tested on multiple PHP versions with comprehensive code quality checks.