brinda / abstract-filter-query
Abstract filter query lib for use only one query builder for all filters in the world (SQL, Youtrack search, jql...)
Installs: 621
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/brinda/abstract-filter-query
Requires
- php: ^8.0.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: 9.2.3
This package is auto-updated.
Last update: 2025-10-06 21:56:30 UTC
README
The library allows you to abstract from various query builders and use a common interface for everything. To do this, you just need to write your own hotkey, which will be inherited from AFQ\Converter\AbstractConverter.
Here is example of using it
<?php use AFQ\Block\AndFilterBlock; use AFQ\Comparison\Equal; use AFQ\Comparison\In; use AFQ\Converter\FilterBlockToSqlWhereConverter; use AFQ\Converter\FilterBlockToYoutrackConverter; use AFQ\FilterQuery; use AFQ\Sorting\Sorting; require_once '../vendor/autoload.php'; $queryFilter = new FilterQuery(); $queryFilter->setFilterBlock(new AndFilterBlock([ new Equal('someKey', 'someValue'), new In('someKey2', ['value1', 'value2', 'value3']) ])); $queryFilter->setSorting((new Sorting([ ['someKey', Sorting::DESC], ['someKey2', Sorting::ASC] ]))); $sqlConverter = new FilterBlockToSqlWhereConverter(); $ytConverter = new FilterBlockToYoutrackConverter(); echo "Sql will be:\n"; echo $sqlConverter->convertFilterQuery($queryFilter); echo "\n\n"; echo "Youtrack will be:\n"; echo $ytConverter->convertFilterQuery($queryFilter);