formal / access-layer
4.0.0
2024-07-14 13:00 UTC
Requires
- php: ~8.2
- innmind/immutable: ~4.0|~5.0
- innmind/specification: ~4.1
- innmind/url: ~4.0
- psr/log: ~3.0
Requires (Dev)
- innmind/black-box: ^5.6.1
- innmind/coding-standard: ~2.0
- 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 = 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/.