Small implementation of a filter criteria pattern in PHP for Complex Heart SDK. Compose several filters using fluent interface.
Just install the package from Packagist using composer:
composer require complexheart/php-criteria
Just import the class:
namespace ComplexHeart\Test\Domain\Criteria;
$criteria = Criteria::createDefault()
->addFilterEqual('name', 'Vincent')
->addFilterNotEqual('surname', 'winnfield')
->addFilterGreaterThan('money', '10000')
->addFilterGreaterOrEqualThan('age', '35')
->addFilterLessThan('cars', '2')
->addFilterLessOrEqualThan('houses', '2')
->addFilterLike('favoriteMeal', 'pork')
->addFilterIn('boss', ['marcellus', 'mia'])
->addFilterNotIn('hates', ['ringo', 'yolanda'])
->withOrder(Order::createDescBy('name'))
->withOrderBy('surname')
->withOrderType(Order::TYPE_ASC)
->withPageLimit(10)
->withPageOffset(5)
$customers = $customerRepository->match($criteria);