1. Go to this page and download the library: Download waffle-commons/data library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
waffle-commons / data example snippets
use Waffle\Commons\Data\Connection\PDOConnectionPool;
$pool = new PDOConnectionPool(
factory: static fn (): \PDO => new \PDO($dsn, $user, $pass, [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
]),
maxConnections: 8, // hard ceiling on simultaneously borrowed handles
pingQuery: 'SELECT 1', // liveness probe before dispensing
);
$connection = $pool->acquire(); // a healthy PDO, reconnected transparently if the socket died
// ... use $connection ...
$pool->release($connection); // return it to the idle set
$pool->reset(); // end-of-request: roll back stragglers, clear statement cache
use Waffle\Commons\Data\Query\Query;
use Waffle\Commons\Data\Query\Criteria;
use Waffle\Commons\Data\Query\Direction;
use Waffle\Commons\Data\Compiler\SQLCompiler;
use Waffle\Commons\Data\Compiler\SQLDialect;
$query = Query::select('id', 'email')
->from('users')
->where(Criteria::eq('status', 'active'), Criteria::in('role', ['admin', 'editor']))
->orderBy('email', Direction::Ascending)
->limit(20);
$compiled = new SQLCompiler(SQLDialect::MySQL)->compile($query);
$compiled->sql; // 'SELECT `id`, `email` FROM `users` WHERE `status` = ? AND `role` IN (?, ?) ORDER BY `email` ASC LIMIT 20'
$compiled->parameters; // ['active', 'admin', 'editor']
use Waffle\Commons\Data\Hydrator\PropertyHookHydrator;
$hydrator = new PropertyHookHydrator(UserDto::class);
$user = $hydrator->hydrate(['id' => '42', 'email' => '[email protected]']); // UserDto
// A malformed value is rejected by UserDto's `set` hook as a ValidationExceptionInterface.
use Waffle\Commons\Data\Migration\MigrationRunner;
$runner = new MigrationRunner(pool: $pool, config: $config);
$applied = $runner->run(static fn (string $version) => printf("applied %s\n", $version));
// $applied: list of versions applied this run ([] when already up to date)
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.