A PHP DataMapper ORM designed for both classic and long-running daemonized applications with flexible configuration and dynamic mapping.
Cycle ORM is a PHP DataMapper, ORM, and Data Modelling engine designed to safely work in both classic web applications and modern, long-running daemonized PHP applications like those using RoadRunner. It provides flexible configuration to model datasets, a powerful query builder, and supports dynamic mapping schema, working with plain PHP objects, annotations, and proxies via extensions.
PHP developers building traditional web applications or modern long-running, daemonized applications (e.g., with RoadRunner) who need a flexible, safe ORM with support for complex data modelling and various database systems.
Developers choose Cycle ORM for its safety and flexibility in both traditional and daemonized environments, its immutable service core and disposable Unit of Work for long-running applications, and its extensive feature set including runtime configuration, multiple relation types, and compatibility with various databases and collections.
PHP DataMapper, ORM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Designed with an immutable service core and disposable Unit of Work, making it safe for daemonized environments like RoadRunner, as emphasized in the features for classic and daemonized PHP applications.
Supports plain PHP objects, ActiveRecord, custom objects, and classless entities with various relation types, including embedded entities and single table inheritance, allowing for versatile data representation.
Includes eager and lazy loading, a query builder with multiple fetch strategies, and supports global query scopes and custom column types, as detailed in the features list for complex queries.
Works with MySQL, MariaDB, PostgreSQL, SQL Server, and SQLite, offering flexibility across different database systems, which is explicitly mentioned in the database compatibility section.
Requires manual setup and configuration, which can be more involved compared to ORMs integrated with frameworks like Laravel's Eloquent, as it lacks out-of-the-box conventions.
While extensible via extensions listed in the README, the ecosystem and community are smaller than established ORMs like Doctrine or Eloquent, potentially limiting third-party integrations and support.
Due to its flexibility and advanced features, such as runtime configuration and dynamic mapping, new users may find it harder to get started compared to more opinionated ORMs, despite extensive documentation.