A data mapper implementation for persistence models in PHP, providing a clean separation between database records and domain objects.
Atlas.Orm is a data mapper implementation for PHP that focuses on persistence models rather than domain models. It provides a way to interact with database records as passive data containers, helping developers maintain a clean separation between database operations and business logic. The library is designed to handle simple data source interactions initially and scale to support domain objects as applications grow in complexity.
PHP developers building applications that require a clear separation between persistence and domain layers, especially those transitioning from simple data access to more complex domain-driven designs.
Developers choose Atlas.Orm for its strict adherence to the data mapper pattern, which avoids the tight coupling of active record and promotes maintainable, evolvable code. Its focus on persistence models makes it a pragmatic choice for applications where domain logic may emerge gradually.
A data mapper implementation for your persistence model in PHP.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Strictly implements the data mapper pattern, keeping database operations decoupled from domain logic, which promotes maintainable code evolution as emphasized in the philosophy.
Uses passive records disconnected from the database, allowing simple data source interactions without the tight coupling of active record, as highlighted in the README.
Designed to populate domain objects from records, facilitating a smooth transition from basic data access to complex domain-driven design, per the project's value proposition.
Explicitly avoids the active record pattern, reducing database coupling and improving long-term maintainability in layered architectures, as stated in the philosophy.
Lacks built-in tools for domain object management, requiring additional code to map persistence records to business logic, which can increase initial development effort.
Requires understanding of data mapper patterns and clean architecture concepts, making it less accessible for developers accustomed to more intuitive active record ORMs.
Compared to established ORMs like Doctrine, it has a smaller community and fewer third-party extensions, which might limit support and integration options.