noitran/rql

RQL - 用于laravel / lumen项目的资源查询语言(RQL)包

0.2.0 2019-02-26 22:04 UTC

This package is auto-updated.

Last update: 2024-09-05 07:04:43 UTC


README

Coverage Status Quality Score Software License Latest Version Total Downloads

关于

该包允许在Laravel的Eloquent ORM中使用资源查询语言(RQL)。提供了一个简单轻量级的API,用于向基于HTTP的应用程序添加动态查询功能。该包作为HTTP请求和ORM之间的连接器。目前仅包括Eloquent处理器,但可以通过添加新的处理器轻松扩展包的功能。

安装

  • 作为composer包安装
$ composer require noitran/rql

使用方法

use Noitran\RQL\Tests\Stubs\Models\User;
use Noitran\RQL\ExprQueue;
use Noitran\RQL\Processors\EloquentProcessor;

// Getting builder instance of model, or builder 
// instance from noitran/repositories also can be passed.
$builder = User::query();

$queue = new ExprQueue();

// Creating expression
$exprClasses = $this->queue->enqueue(
	new \Noitran\RQL\Expressions\EqExpr(null, 'name', 'John')
);

// Attaching expression into builder
$query = (new EloquentProcessor($this->builder))->process($exprClasses);

// Thats it! Expression has been applied. Can be checked by dumping query.
// Example:
dd($query->toSql());

// Dumps attached expression to sql:
// select * from "users" where "name" = ?

所有示例都可以在测试文件中查看:Noitran\RQL\Tests\Processors\EloquentProcessorTest

待办事项

  • 添加请求/输入解析器。
  • 改进关系/列绑定。
  • 改进文档并添加更多示例。