This is a wrapper around xiag-ag/rql-parser that combines that parser with a small layer of mongodb integration.
This package adheres to SemVer versioning. It will be considered stable after reaching 2.x since the initial 1.x release is considered rather buggy.
It uses a github version of git-flow in which new features and bugfixes must be merged to develop using a github pull request. It uses the standard git-flow naming conventions with the addition of a 'v' prefix to version tags.
Install it using composer.
composer require graviton/php-rql-parser
<?php
require 'vendor/autoload.php';
$rql = 'or(eq(name,foo)&eq(name,bar))';
/** @var \Doctrine\ODM\MongoDB\Query\Builder $builder */
$visitor = new \Graviton\Rql\Visitor\MongoOdm($builder);
$lexer = new \Xiag\Rql\Parser\Lexer;
$parser = \Xiag\Rql\Parser\Parser::createDefault();
// parse some Resource Query Language
$rqlQuery = $parser->parse($lexer->tokenize($rql));
// get query
$query = $visitor->visit($rqlQuery)->getQuery();
// ...
We welcome contributions on the develop branch.