atlas/pdo
Decorates any PDO instance with a Connection that adds perform() (query + bind in one call), handy fetch*/yield* helpers, and query logging with backtraces. Includes a ConnectionLocator to manage named default/read/write connections.
Hygiene release for compatibility up to PHP 8.5.
Initial release.
Added support for persistent connections (#12, #14, #16).
Merged #11 to log COMMIT failure due to exception.
Updated documentation.
Fixed #10 so that LoggedStatement can execute with plain PDO.
Fixed a faulty default parameter value in LoggedStatement.
Also updated documentation, especially typo fixes.
This release adds query logging and backtracing functionality via both the ConnectionLocator and an individual Connection. Cf. the new logQueries(), getQueries(), and setQueryLogger() methods on those classes.
The Connection::new() and factory() methods now instantiate via the static keyword instead of the class name, making the Connection class more amenable to extension.
The Connection::perform() method now binds PDO::PARAM_BOOL values as string '0' and string '1'; this addresses a not-a-bug-but-still-surprising behavior in PDO; cf. https://bugs.php.net/bug.php?id=49255.
Updated docs.
First stable release.
This package is a descendant of Aura.Sql. The Atlas.Pdo Connection differs from the Aura.Sql ExtendedPdo object in significant ways:
The Connection does not extend PDO; it cannot fulfill a PDO typehint, though it does proxy method calls to the decorated PDO instance.
The Connection does not rebuild the query statements to allow for array binding and repeated placeholders. That kind of work is now left to other Atlas packages.
The Connection object is not lazy-loading; creating a Connection actually opens a database connection. Lazy-loading is now in the province of the ConnectionLocator.
The ConnectionLocator getRead() and getWrite() methods no longer take a $name argument. They will always return the first read or write connection opened with the locator (or the default connection if there are no factories for read or write connections). To get a named connection for a connection type, use the get() method.
This is a hygiene release to update the documentation.
First release.
How can I help you explore Laravel packages today?