laravel-freelancer-nl/aql-query-builder

此软件包已被放弃且不再维护。作者建议使用 laravel-freelancer-nl/fluentaql 软件包。

PHP AQL 查询构建器


README

FluentAQL

为 ArangoDB 的查询语言(AQL)提供流畅的 PHP 查询构建器。

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

目录

  1. 用例
  2. 需求
  3. 安装
  4. 使用

目的

使用查询构建器主要使程序员的日常生活更加轻松。您可以编写更干净的代码,并且可以更快地完成它。当然,这要以应用程序速度的代价为代价。

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

查询构建器的使用既有优点也有缺点。您需要根据自己的需求来决定。

缺点

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

优点

  1. 以编程方式编写查询(例如搜索分面)。
  2. 易于查询分解
  3. 简化代码。
  4. 减少 AQL 语法错误
  5. 灵活的表达式输入
  6. 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')

文档

参考 & 资源

ArangoDB

相关包

致谢

  • Pluma@arangodb