1. Go to this page and download the library: Download xtompie/aql 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/ */
xtompie / aql example snippets
use Xtompie\Aql\Aql;
use Xtompie\Aql\MySQLPlatform;
$aql = new Aql(
platform: new MySQLPlatform(),
);
$result = $aql([
'select' => '*',
'from' => 'order',
'where' => [
'status' => 'active',
],
'limit' => 3,
]);
$result->sql(); // 'SELECT * FROM `order` WHERE status = ? LIMIT 3'
$result->binds(); // ['active']
$result->toArray(); // ['SELECT * FROM `order` WHERE status = ? LIMIT 3', ['active']]
$aql(['select' => 'post_id', 'title' => 'post_title'])->toArray();
// ["SELECT post_id, post_title as 'title'", []];
$aql(['select' => 'post_id, post_title as title'])->toArray();
// ['SELECT post_id, post_title as title', []];
$aql(['select' => '|x' => '|COUNT(*)'])->toArray();
// ['SELECT COUNT(*) as x', []];
$aql([
'where' => [
'a' => 'a',
'b' => ['b1', 'b2', 'b3'],
'c BETWEEN' => [2, 5],
'd <>' => 'd1',
'e LIKE' => '%e1%',
'f:gt' => 9,
]
])
->toArray()
;
// [
// 'WHERE a = ? AND b IN (?, ?, ?) AND c BETWEEN ? AND ? AND d <> ? AND e LIKE ? AND f > ?',
// ['a', 'b1', 'b2', 'b3', 2, 5, 'd1', '%e1%', 9]
// ];
use Xtompie/Aql/Aql;
use Xtompie/Aql/PostgreSQLPlatform;
(new Aql(platform: new PostgreSQLPlatform()))([
'SELECT' => '*',
'FROM' => 'order'
])->toArray();
// ['SELECT * FROM "order"', []];
namespace App\Shared\Database;
use Xtompie\Aql\Aql as BaseAql;
use Xtompie\Aql\Result;
interface Paging
{
public function limit(): int;
public function offset(): int;
}
class Aql
{
public function __construct(
protected BaseAql $aql,
) {}
public function __invoke(array $aql): Result
{
if (isset($aql['paging'])) {
$paging = $aql['paging'];
if (!$paging instanceof Paging) {
throw new \Exception();
}
$aql['offset'] => $paging->offset();
$aql['limit'] => $paging->limit();
unset($aql['paging']);
}
return ($this->aql)($aql);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.