formal/access-layer

4.0.0 2024-07-14 13:00 UTC

README

Build Status codecov Type Coverage

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.

Installation

composer require formal/access-layer

Example

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:pwd@127.0.0.1:3306/database_name')));

$rows = $connection(SQL::of('SELECT * FROM `some_table`'));
$rows; // instanceof Sequence<Row>

Documentation

Complete documentation can be found at http://formal-php.github.io/access-layer/.