Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. PHP
  3. Atlas.Orm

Atlas.Orm

MITPHP3.1.1

A data mapper implementation for persistence models in PHP, providing a clean separation between database records and domain objects.

Visit WebsiteGitHubGitHub
429 stars21 forks0 contributors

What is Atlas.Orm?

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.

Target Audience

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.

Value Proposition

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.

Overview

A data mapper implementation for your persistence model in PHP.

Use Cases

Best For

  • Implementing the data mapper pattern in PHP applications
  • Maintaining a clean separation between database records and domain objects
  • Transitioning from simple data access to domain-driven design
  • Avoiding the tight coupling of active record implementations
  • Building applications where persistence logic should remain decoupled
  • Managing database interactions in layered architectures

Not Ideal For

  • Projects relying on active record patterns for rapid prototyping and simplicity
  • Applications where domain logic and persistence are tightly integrated from the outset
  • Teams seeking a full-featured ORM with built-in domain modeling, validation, and extensive tooling
  • Small-scale or simple CRUD applications where the overhead of data mapper separation is unnecessary

Pros & Cons

Pros

Clean Architecture Separation

Strictly implements the data mapper pattern, keeping database operations decoupled from domain logic, which promotes maintainable code evolution as emphasized in the philosophy.

Persistence-Focused Records

Uses passive records disconnected from the database, allowing simple data source interactions without the tight coupling of active record, as highlighted in the README.

Scalability to Domain Models

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.

Avoids Active Record Pitfalls

Explicitly avoids the active record pattern, reducing database coupling and improving long-term maintainability in layered architectures, as stated in the philosophy.

Cons

Manual Domain Integration

Lacks built-in tools for domain object management, requiring additional code to map persistence records to business logic, which can increase initial development effort.

Steeper Learning Curve

Requires understanding of data mapper patterns and clean architecture concepts, making it less accessible for developers accustomed to more intuitive active record ORMs.

Limited Ecosystem and Tooling

Compared to established ORMs like Doctrine, it has a smaller community and fewer third-party extensions, which might limit support and integration options.

Frequently Asked Questions

Quick Stats

Stars429
Forks21
Contributors0
Open Issues9
Last commit5 years ago
CreatedSince 2015

Tags

#data-mapper#orm#database#domain-driven-design#records#php#persistence#sql

Built With

P
PHP

Links & Resources

Website

Included in

PHP32.5k
Auto-fetched 16 hours ago

Related Projects

ProxyManagerProxyManager

🎩✨🌈 OOP Proxy wrappers/utilities - generates and manages proxies of your objects

Stars4,950
Forks190
Last commit4 days ago
Doctrine ExtensionsDoctrine Extensions

Doctrine2 behavioral extensions, Translatable, Sluggable, Tree-NestedSet, Timestampable, Loggable, Sortable

Stars4,142
Forks1,253
Last commit3 months ago
Laravel EloquentLaravel Eloquent

[READ ONLY] Subtree split of the Illuminate Database component (see laravel/framework)

Stars2,771
Forks606
Last commit1 day ago
BaumBaum

Baum is an implementation of the Nested Set pattern for Laravel's Eloquent ORM.

Stars2,224
Forks451
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub