Agile Data is a PHP framework focused on improving database scalability, reducing query latency and abstracting compatible RDBMS and NoSQL features.
Learning from ORM, Active Record, Query Builder and Data Mapper successes and failures - Agile Data introduces a NEW and UNIQUE data access patterns that are ready for use by hobbyists and enterprises to access Relational Databases, realtime BigData sources and custom APIs.
Agile Data is written in PHP with minimum dependencies, licensed under MIT and can be used inside any PHP Framework, application and even Wordpress plugin.
Download Agile Data 1.1.6
Unique Benefits of Agile Data
Think of Agile-Data as an object-oriented "language" for your App to talk with a database instead of using raw SQL. Compared to alternative solutions (such as ORM or Active Record), Agile Data:
- Does not restrict you from using powerful features - Sub-queries, Joins, Expressions, Aggregation, Multi-record operations and others.
- Allow you to seamlessly use SQL and NoSQL databases - cross-vendor references, easy entity migration, data augmentation and encapsulation.
- Focus on minimizing amount of code you have to write, queries you have to execute and data you have to load/save.
- Full Domain Model separation. Rest of your app does not have to know how/where your data is stored.
Unique Data Access Patterns
Our code is built on a completely new data access pattern called "DataSet and Action Mapping". Here is a list of the fundamental concepts:
- A single in-memory object represents accessible record scope inside a database
- Actions (also known as Queries) can be executed only on DataSet records.
- Actions are not limited to single-record Add, List, Update and Delete. They can be extended based capabilities of DB and persistence driver.
- One record in DataSet can be made Active (loaded).
- Reference traversal is a way to look-up relevant DataSet without physically loading any Data.
- One model can import fields from related model through sub-query or aggregation.
Integration with UI Framework
The design of Model Entities in Agile Data makes it extremely simple for you to use Data Source with UI widgets such as Forms, Tables, Lister Templates etc. This is mainly due to fact that developer can control which fields to query from a Model.
For all your aggregation needs. Use your Domain Models to GROUP and UNION without hardcore queries.
We are now officially in the "stable" mode. Expect less releases and more focus on stability.
Practical event sourcing for your PHP project. Full audit trail and UNDO functionality.
Added a strong type support as well as many bugfixes and improvements.
- Change: Renamed Field_One/Field_Many into Relation_One/Relation_Many
- Fix: addCondition(field, [..])
- Add: hasMany()->addFields();
- Fix: hasOne relation traversal on unloaded model
- Fix: hasOne accepts default value
- Fix: subqueries are using aliases
- Add: added advanced docs
- Add: added Field->set()
- Add: added Field->mandatory
- Fix: random bugfixes
Full Release History
- Fix: insert() cloning
- Fix: ref() without active record works
- Add: title_field support
- Add: ref() hasOne save hook
- Add: isDirty()
- Add: afterUnload/beforeUnload hooks
- Add: automatic model reloading
- Add: advanced usage pattern doc
- Add: support for related alias
- Fix: bugs with joined table save
- Add: withID()
- Fix: preserve dirty flags for afterSave
- Fix: set twice, then unset