Releases: brokencube/automatorm
Another Minor QueryBuilder Bugfix
6.2.3 Another subquery in where clause fix
Minor QueryBuilder Bugfix
6.2.2 Subqueries should clone QueryBuilder object
QueryBuilder Bugfix
Some issues with __clone() in Column objects
QueryBuilder Rebuild
QueryBuilder has been split up from a monolithic file into a more OO collection of classes which helps break up the logic
Support for CrossSchema joins in Fake data
Fake data objects have been rewritten in order to support multiple simultaneous schemas and connections, and to allow for cross-schema joins to function.
Version 6 - Major overhaul of internals
Major improvements in this version:
- New internals for accessing databases, allowing the addition of a "fake" database connection allowing for...
- PHPUnit support + tests! Woo!
- Cross Schema joins are now supported for MySQL
- Now uses standard PHP DateTime objects
- Major clean up of the code + commenting with some help from CodeClimate
- Cache is now optional (though still recommened) and supports any PSR-6 / PSR-16 compatible caching library
- Various minor breaking changes across the codebase :/
Reverting rename of Data internal variables
Is breaking Dump::dump
New sortById function
To allow easy sorting of collections (for example during pagination) where you have an already sorted list of ids you wish to "get"
Pluggable Data Layer
This release marks a rewrite of how the ORM interacts with the data layer. Previous versions of the ORM have assumed a database connection using PDO through the Database/Connection object.
By change the Connection object to now be effectively a Dependancy Injection Container, the Core ORM functionality no longer has concrete functionality for accessing data, instead relying on the Connection object to supply both a DataAccess and Schema object. This allows for us to provide alternative Connection objects that back onto different tech stacks, including "Fake"d stacks allowing for unit testing without hard DB dependancies.
Standardised INSERT statements
INSERT statements generated by the QueryBuilder now use standard syntax
INSERT INTO table (col1, col2) VALUES (?, ?);
instead of MySQL specific syntax
INSERT INTO table SET col1 = ?, col2 = ?;