➕ Added methods Atlas::logQueries() and Atlas::getQueries(), to expose
🌲 the query logging functionality of the ConnectionLocator.
⚡️ Updated docs and tests
➕ Added methods Atlas::newRecords() and Atlas::persistRecords()
For consistency with other methods, Atlas::persistRecordSet() now returns
void, and no longer detaches deleted records
⚡️ Updated docs
🚀 This release provides a PHPStorm metadata resource to aid in IDE autocompletion
of return typehints, found at
resources/phpstorm.meta.php. Copy it to the root
of your project as
.phpstorm.meta.php, or add it to your root-level
📚 Also, the documentation and tests for this package have been updated to honor
changes to the underlying Mapper and Table packages. In particular, the Mapper
classes no longer use a Mapper suffix.
🎉 Initial release of the 3.x series.
🚀 This release adds support for 'manual' transactions outside a unit of work,
⏪ via Atlas::beginTransaction(), commit(), and rollBack() methods.
Also, Row::isEquivalent() now compares booleans as integers, so that a change
from 1 => true or 0 => false (and vice versa) is no longer considered a
difference. This should help reduce "Expected 1 row affected, actual 0" errors
with some databases (notably MySQL).
🚀 This release introduces an AtlasBuilder similar to the one in the 3.x series,
thereby allowing you to lazy-load mappers instead of having to register them
in advance. Using AtlasBuilder is now preferred over AtlasContainer, though
📚 of course the latter continues to work as before. Documentation and tests have
⚡️ been updated accordingly.
🚀 This release exposes underlying profiler functionality in Aura.Sql
ConnectionLocator via two new methods: Atlas::setProfiling() and
🐎 It also incorporates two performance enhancements: one to
AbstractMapper::newRelated() via a prototype object for relateds, and one to
AbstractTable::newRow() via array_intersect_key() comparison.
🚀 This release fixes a bug where MapperEvents::modifySelect() was not being
honored by various AbstractMapper::fetch() methods. Two new off-interface
methods, AbstractTable::selectRow() and selectRows(), are introduced as a
🚀 This release adds one "off-interface" method,
👍 to support retrieval of initial values on rows.
🛠 It also fixes a bug where a relationship definition could use the same name more
than once, silently overwriting the previous definition.
📚 Finally, it includes updated documentation and tests.
🚀 This release adds two "off-interface" events,
MapperEvents::modifySelect(), to allow modification of the
These events are added only to the implementation classes, and not the
interfaces, to make the functionality available without introducing a BC break.
A future major revision may incorporate them into the relevant interfaces.
🛠 It also fixes the bug noted at #86
⚡️ where existing connections are not updated to the current transaction state.