Allow choosing QueryParser implementation

This commit is contained in:
Sobuno
2025-01-01 05:36:22 +01:00
parent 9d9dffee74
commit 9729434926

View File

@@ -23,6 +23,7 @@ declare(strict_types=1);
namespace FireflyIII\Providers; namespace FireflyIII\Providers;
use FireflyIII\Support\Search\GdbotsQueryParser;
use FireflyIII\Support\Search\OperatorQuerySearch; use FireflyIII\Support\Search\OperatorQuerySearch;
use FireflyIII\Support\Search\QueryParser; use FireflyIII\Support\Search\QueryParser;
use FireflyIII\Support\Search\QueryParserInterface; use FireflyIII\Support\Search\QueryParserInterface;
@@ -47,10 +48,13 @@ class SearchServiceProvider extends ServiceProvider
{ {
$this->app->bind( $this->app->bind(
QueryParserInterface::class, QueryParserInterface::class,
static function (Application $app) { static function () {
/** @var QueryParser $queryParser */ $implementation = env('QUERY_PARSER_IMPLEMENTATION', 'default');
$queryParser = app(QueryParser::class);
return $queryParser; return match($implementation) {
'new' => app(QueryParser::class),
default => app(GdbotsQueryParser::class),
};
} }
); );