Skip to content

readme template

Imants Horsts edited this page Aug 25, 2016 · 8 revisions

Agile Data

Agile Data implements a new Database Access Logic created out of frustration with ORM performance issues, lack of proper domain model implementation in major frameworks and lack of unified support for SQL and NoSQL databases.

Everything you can do with raw SQL (or NoSQL), you can also do with Agile Data

Although Agile Data is a very young project, we have built a solid foundation with the aim to expose database features to the developer (such as sub-selects, joins, unions, expressions, aggregation and custom syntax) while abstracting implementation details.

We also take the enterprise requirements very seriously, so we took care of object-relational impedance mismatch and are working to build extensions such as Audit Log, ACL, Undo, Optional Joins, Derived Models, Import/Export tools and expressive RestAPI Server.

Agile Data is not a conventional ORM. We have redesigned the whole concept from the ground-up for the modern world where SQL, NoSQL and BigData live in peace.

Quick Comparison

Modern PHP frameworks have a lot of things to focus on, so the bundled database access tools are often lacking. Until now the only option was to use Doctrine 2, but with Agile Data you can get the same results in a much more elegant PHP-like way. In addition to all the basic features, Agile Data can help you in the complex situations without hacks:

Use Case Laravel Eloquent CakePHP3 ORM
Can my model automatically populate and link multiple tables? No
Can model field be populated from custom SQL expression? No
Does my Entity have to extend a God Class? Yes
If I rename "name" into "first_name" in database, will this affect my API Yes
Can relation reference model with scope? Hack
Will the mapper update only properties that I have changed? Yes
Can I load only specified fields into my model? No