PHP AQL 查询构建器

2.1.1 2022-05-16 09:37 UTC

README

Fluent PHP 查询构建器,用于 ArangoDB 的查询语言(AQL)。

Latest Version Github CI tests Scrutinizer Code Quality Code Coverage Total Downloads License

目录

  1. 用例
  2. 要求
  3. 安装
  4. 使用方法

目的

使用查询构建器主要使程序员的编程生活更容易。您可以编写更干净的代码,并且速度更快。当然,这会以应用速度为代价。

如果您需要极致的速度,您需要编写自己的查询。

使用查询构建器既有优点也有缺点。您需要自己决定您需要什么。

缺点

  1. 牺牲速度
  2. 您仍然需要理解 ArangoDB、AQL 和数据库的 'schema'。
  3. 查询构建器 API 和原始 AQL 输出之间可能存在细微差异,这可能会令人困惑

优点

  1. 以编程方式构建查询(例如,搜索分面)。
  2. 易于查询分解
  3. 简化代码。
  4. 减少 AQL 语法错误
  5. 灵活的表达式输入
  6. IDE 智能感应。

要求

  • 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')

文档

参考资源

ArangoDB

相关包

致谢

  • Pluma@arangodb