Cycle ORM
Cycle is a PHP DataMapper ORM and Data Modelling engine designed to safely work in classic and daemonized PHP applications (like RoadRunner). The ORM provides flexible configuration options to model datasets, a powerful query builder, and supports dynamic mapping schemas. The engine can work with plain PHP objects, support annotation declarations, and proxies via extensions.
Documentation | Comparison with Eloquent and Doctrine
#Features
- ORM with has-one, has-many, many-through-many and polymorphic relations
- Plain Old PHP objects, AR, Custom objects or same entity type for multiple repositories
- eager and lazy loading, query builder with multiple fetch strategies
- embedded entities, lazy/eager loaded embedded partials
- runtime configuration with/without code-generation
- column-to-field mapping, single table inheritance, value objects support
- hackable: persist strategies, mappers, relations, transactions
- works with directed graphs and cyclic graphs using command chains
- designed to work in long-running applications: immutable service core, disposable UoW
- supports MySQL, MariaDB, PostgresSQL, SQLServer, SQLite
- schema scaffolding, introspection, and migrations
- supports global query scopes, UUIDs as PK, soft deletes, auto timestamps
- custom column types, FKs to non-primary columns
- use with or without annotations, proxy classes, and auto-migrations
- compatible with Doctrine Collections, Doctrine Annotations, and Zend Hydrator
#Extensions
Component |
Current Status |
cycle/schema-builder |
|
cycle/annotated |
|
cycle/proxy-factory |
|
cycle/migrations |
|
#License
The MIT License (MIT). Please see LICENSE
for more information. Maintained by Spiral Scout.