formal / access-layer
2.15.0
2024-02-10 14:27 UTC
Requires
- php: ~8.2
- innmind/immutable: ~4.0|~5.0
- innmind/specification: ^3.0.1
- innmind/url: ~4.0
- psr/log: ~3.0
Requires (Dev)
- innmind/black-box: ^5.6.1
- innmind/coding-standard: ~2.0
- phpunit/phpunit: ~10.2
- vimeo/psalm: ~5.13
Suggests
- innmind/black-box: For property based testing
Provides
Conflicts
- innmind/black-box: <5.0|~6.0
README
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 = new Lazy(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/.