This a simple abstraction layer on top of builtin \PDO
class to offer a minimalist api.
The goal is separate expression of queries and their execution by using immutable structures and eliminating states wherever possible.
Important
you must use vimeo/psalm
to make sure you use this library correctly.
composer require formal/access-layer
use Formal\AccessLayer\{
Connection\Lazy,
Connection\PDO,
Query\SQL,
Row,
};
use Innmind\Url\Url;
use Innmind\Immutable\Sequence;
$connection = Lazy::of(static fn() => PDO::of(Url::of('mysql://user:[email protected]:3306/database_name')));
$rows = $connection(SQL::of('SELECT * FROM `some_table`'));
$rows; // instanceof Sequence<Row>
Complete documentation can be found at http://formal-php.github.io/access-layer/.