digitlab / search-parser
Search string parser for Laravel.
v1.0.0
2016-04-22 06:13 UTC
Requires
- php: >=5.6
- illuminate/support: ^5.0
Requires (Dev)
- mockery/mockery: ~0.9.2
- phpunit/phpunit: ^5.0
This package is not auto-updated.
Last update: 2024-11-21 01:43:13 UTC
README
Parses Lucene/Google style search strings into PostgresSQL full text query string.
Installation
Install using composer:
composer require digitlab/search-parser
Add the service provider in app/config/app.php:
DigitLab\SearchParser\SearchParserServiceProvider::class,
Usage
Basic Usage
To just parse a full text query you can simply use SearchParser:
$parser = new SearchParser(); $filters = $parser->parse('string to parse');
will produce
[ 'search' => 'string&to&parse' ]
Filters
To handle filters you need to extend SearchParser and add a handle function or add a pass through filter:
class CustomSearchParser extends SearchParser { /** * The filters that should be returned without handlers. * * @var array */ protected $passthruFilters = ['other']; /** * Handle the state filter. * * @param mixed $state * @return array */ protected function handleState($state) { return ['some' => $state]; } }
$parser = new CustomSearchParser(); $filters = $parser->parse('state:pending other:string string to parse');
will produce
[ 'search' => 'string&to&parse', 'some' => 'pending', 'other' => 'string' ]
Custom Query Key
You can customise the array key of the query by overriding the $queryName
variable in your custom class.
class CustomSearchParser extends SearchParser { /** * The name of the query in the result array. * * @var string */ protected $queryName = 'other'; }
$parser = new CustomSearchParser(); $filters = $parser->parse('string to parse');
will produce
[ 'other' => 'string&to&parse' ]
License
Adaptive View is licensed under The MIT License (MIT).