Skip to content
This repository was archived by the owner on Jul 22, 2025. It is now read-only.

skyrpex/query-syntax-php

Repository files navigation

Query Syntax

This package allows you to parse Algolia-like queries into sort of a AST.

Installation

composer require pallares/query-syntax

Usage example

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

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

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

The AST looks like this:

$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'],
            ],
        ]
    ],
];

About

Parse Algolia-like queries into sort of a AST.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages