https://github.com/andersao/php-fiql-parser
PHP FIQL Parser
https://github.com/andersao/php-fiql-parser
fiql fiql-parser php
Last synced: 24 days ago
JSON representation
PHP FIQL Parser
- Host: GitHub
- URL: https://github.com/andersao/php-fiql-parser
- Owner: andersao
- Created: 2021-10-07T02:19:14.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2021-10-14T03:41:54.000Z (about 4 years ago)
- Last Synced: 2025-09-12T05:21:12.561Z (about 2 months ago)
- Topics: fiql, fiql-parser, php
- Language: PHP
- Homepage:
- Size: 81.1 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## FIQL Parser
[](https://packagist.org/packages/prettus/php-fiql-parser)
[](https://packagist.org/packages/prettus/php-fiql-parser)
[](https://packagist.org/packages/prettus/php-fiql-parser)
[](https://packagist.org/packages/prettus/php-fiql-parser)
[](https://codeclimate.com/github/andersao/php-fiql-parser/maintainability)
[](https://codeclimate.com/github/andersao/php-fiql-parser/test_coverage)
A PHP parser for the Feed Item Query
Language ([FIQL](https://datatracker.ietf.org/doc/html/draft-nottingham-atompub-fiql-00)).
## Installation
```bash
composer require prettus/php-fiql-parser
```
## Using Parser
```php
use \Prettus\FIQLParser\Parser;
use \Prettus\FIQLParser\Expression;
use \Prettus\FIQLParser\Exceptions\FiqlException;
$expression = Parser::fromString('last_name==foo*,(age=lt=55;age=gt=5)');
print_r($expression->toArray());
print_r($expression->toJson());
/**
* Output of toJson()
*
* {"or":[["last_name","==","foo*"],{"and":[["age","<","55"],["age",">","5"]]}]}
*/
/**
* Output of toArray()
*
* [
* 'or' => [
* ['last_name', '==', 'foo*'],
* [
* 'and' => [
* ['age', '<', 55],
* ['age', '>', 5],
* ]
* ]
* ]
* ]
* /
```
## Using Builder
```php
use \Prettus\FIQLParser\Expression;
use \Prettus\FIQLParser\Constraint;
use \Prettus\FIQLParser\Operator;
use \Prettus\FIQLParser\Exceptions\FiqlException;
$expression = new Expression();
$expression->addElement(new Constraint('last_name', '==', 'foo*'));
$expression->addElement(new Operator(','));
$subExpression = new Expression();
$subExpression->addElement(new Constraint('age', '=lt=', '55'));
$subExpression->addElement(new Operator(';'));
$subExpression->addElement(new Constraint('age', '=gt=', '5'));
$expression->addElement($subExpression);
print_r(strval($expression));
// last_name==foo*,age=lt=55;age=gt=5
```
## Credits
This project is completely inspired by python [fiql-parser](https://github.com/sergedomk/fiql_parser)