pallares / query-syntax

该软件包的最新版本(1.0.1)没有可用的许可证信息。

1.0.1 2017-07-09 22:15 UTC

This package is auto-updated.

Last update: 2024-09-05 04:35:26 UTC


README

该软件包允许您将类似Algolia的查询解析成AST(抽象语法树)。

安装

composer require pallares/query-syntax

使用示例

$query = 'director:"Steven Spielberg" AND (category:"sci-fi" OR category:terror)';

$lexer = new Pallares\QuerySyntax\Lexer($query);

$ast = (new Pallares\QuerySyntax\Parser)->parse($lexer);

AST看起来像这样

$ast === [
    'operator' => 'and',
    'children' => [
        ['operator' => 'comparison', 'key' => 'director', 'value' => 'Steven Spielberg'],
        [
            'operator' => 'or',
            'children' => [
                ['operator' => 'comparison', 'key' => 'category', 'value' => 'sci-fi'],
                ['operator' => 'comparison', 'key' => 'category', 'value' => 'terror'],
            ],
        ]
    ],
];