laravel-freelancer-nl / aql-query-builder
2.1.1
2022-05-16 09:37 UTC
Requires
- php: ^8.0
- ext-json: *
- spatie/ray: ^1.34
Requires (Dev)
- ergebnis/composer-normalize: ^2.6
- mockery/mockery: ^1.4
- nikic/php-parser: ^4.2@dev
- phpmd/phpmd: ^2.9
- phpstan/phpstan: ^1.2
- phpunit/phpunit: ^9.5
- scrutinizer/ocular: ^1.8
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^4.10
- dev-next
- 2.1.1
- 2.1.0
- 2.0.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 1.0.0-beta.12
- 1.0.0-beta.11
- 1.0.0-beta.10
- 1.0.0-beta.9
- 1.0.0-beta.8
- 1.0.0-beta.7
- 1.0.0-beta.6
- 1.0.0-beta.5
- 1.0.0-beta.4
- 1.0.0-beta.3
- 1.0.0-beta.2
- 1.0.0-beta.1
- 1.0.0-beta
- 1.0.0-alpha
- 0.5
- 0.4
- 0.3
- 0.2
- 0.1
- dev-dependabot/github_actions/dependabot/fetch-metadata-2.2.0
- dev-dependabot/github_actions/dependabot/fetch-metadata-2.1.0
- dev-dependabot/github_actions/actions/cache-4
This package is auto-updated.
Last update: 2024-07-08 00:22:10 UTC
README
FluentAQL
为 ArangoDB 的查询语言(AQL)提供流畅的 PHP 查询构建器。
目录
目的
使用查询构建器主要使程序员的日常生活更加轻松。您可以编写更干净的代码,并且可以更快地完成它。当然,这要以应用程序速度的代价为代价。
如果您需要极致的速度,您将需要编写自己的查询。
查询构建器的使用既有优点也有缺点。您需要根据自己的需求来决定。
缺点
- 牺牲速度
- 您仍然需要了解 ArangoDB、AQL 和数据库的 '模式'。
- 查询构建器 API 和原始 AQL 输出之间可能存在细微差别,这可能会令人困惑
优点
- 以编程方式编写查询(例如搜索分面)。
- 易于查询分解
- 简化代码。
- 减少 AQL 语法错误
- 灵活的表达式输入
- IDE 智能感应。
需求
| FluentAQL | ArangoDB | PHP |
|---|---|---|
| 1.x | ^3.6 | ^8.0 |
- ArangoDB 定期在次要版本中添加 AQL 函数和子句。因此,请务必检查 AQL 文档以了解特定功能的可用性。
安装
您知道该怎么做
composer require laravel-freelancer-nl/fluentaql
开始之前:安全第一!
FluentAQL 是一个查询构建器,专注于使您作为开发者的生活更加轻松,同时保持 AQL 的强度和灵活性。它专注于提供的表达式的语法检查,但如果您不绑定用户输入,那么这并不是万无一失的。
始终绑定用户输入。
使用
首先启动一个新的查询构建器,然后流畅地添加 AQL 子句。
步骤 1:创建查询构建器
use LaravelFreelancerNL\FluentAQL\QueryBuilder;
...
$qb = new QueryBuilder();
步骤 2:编写查询
例如
$qb->for('i', '1..100')->filter('i', '<', 50)->limit(10)->sort('i', 'desc')->return('i');
步骤 3:编译查询
$qb->get();
查询构建器现在包含查询、绑定和集合 (*),您可以将其发送到 ArangoDB 通过客户端。
$query = $qb->query;
$binds = $qb->binds;
$collections = $qb->collections;
- 必须将集合传递给 ArangoDB,以防止某些集群操作和事务的死锁。
此查询生成的 AQL 为
FOR i IN 1..100 FILTER i < 50 LIMIT 10 SORT i DESC RETURN i
(始终)绑定用户输入
无论什么情况,永远不要相信用户输入,并且始终绑定它。
$qb->bind('your data')
绑定按顺序注册并分配一个 ID。如果您想自己指定绑定名称,则可以添加它
$qb->bind('your data', 'your-bind-id')
文档
- API
- 核心概念
参考 & 资源
ArangoDB
相关包
致谢
- Pluma@arangodb