pomm-project / model-manager
PHP Object Model Manager for Postgresql
Installs: 254 558
Dependents: 6
Suggesters: 3
Security: 0
Stars: 66
Watchers: 9
Forks: 27
Open Issues: 20
Requires
- php: >=5.4.4
- ext-pgsql: *
- pomm-project/foundation: ~2.0
- psr/log: ~1.0
Requires (Dev)
- atoum/atoum: dev-master
Suggests
- pomm-project/cli: dev-master
This package is auto-updated.
Last update: 2024-10-27 15:33:56 UTC
README
ModelManager is a Pomm project package. It makes developers able to manage entities upon the database through model classes. It is not an ORM, it grants developers with the ability to perform native queries using all of Postgres’SQL and use almost all its types. This makes model layer to meet with performances while staying lean.
This package will provide:
- Model classes with all common built-in queries (CRUD but also,
count
andexists
). - Flexible entities
- Embedded entities converter
- Model Layer to group model computations in transactions.
The model layer also proposes methods to leverage Postgres nice transaction settings (constraint deferring, isolation levels, read / write access modes etc.).
Installation
Pomm components are available on packagist using composer. To install and use Pomm's model manager, add a require line to "pomm-project/model-manager"
in your composer.json
file. It is advised to install the CLI package as well.
In order to load the model manager's poolers at startup, it is possible to use the provided SessionBuilder
in Pomm's configuration:
$pomm = new Pomm([ 'project_name' => [ 'dsn' => …, 'class:session_builder' => '\PommProject\ModelManager\SessionBuilder', ], … ]);
It is better to provide dedicated session builders with your project.
Documentation
The model manager’s documentation is available either online or directly in the documentation
folder.
Tests
This package uses Atoum as unit test framework. The tests are located in sources/tests
. This package also provides a ModelSessionAtoum
class so the test classes can directly get sessions with the model
and model layer
poolers loaded.