New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

noitran/rql

RQL - Resource Query Language package for laravel / lumen projects
14 2
Install
composer require noitran/rql
Latest Version:0.2.0
PHP:>=7.2
Laravel:5
License:MIT
Last Updated:Sep 4, 2019
Links: GitHub  ·  Packagist
Maintainer: noitran

RQL - Resource Query Language Package

Coverage Status Quality Score Software License Latest Version Total Downloads

About

Package allows to use Resource Query Language (RQL) with Laravel's Eloquent ORM. Providers a simple and light-weight API for adding dynamic querying capabilities to HTTP based applications. Package functions as connector between HTTP requests and ORM. Currently only Eloquent Processor is included, but pacakge capabilities can be easly extended by adding new Processor.

Install

  • Install as composer package
$ composer require noitran/rql

Usage

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" = ?

All samples can be viewed in testfile: Noitran\RQL\Tests\Processors\EloquentProcessorTest

Todo

  • Add request / input parsers.
  • Improve relation / column bindings.
  • Improve docs and add more samples.

Related Packages

noitran/micro-repositories

Repositories package for laravel / lumen projects

2 1
arielsand/mongodb-eloquent-api-filter-mapping

Awesome and simple way to filter Monolog/Eloquent queries right from the API cal...

2,253 0
raditzfarhan/laravel-sortable

Just a simple sortable behaviour for your Laravel and Lumen eloquent model.

209 0
laraditz/saring

A simple eloquent model filter.

136 0
mongodb/laravel-mongodb

A MongoDB based Eloquent model and Query builder for Laravel

10,336,784 7,061

Version History

Version Released PHP Laravel License
0.2.0 >=7.2 ~5.7 MIT
v0.1.0 >=7.2 ~5.7 MIT