Skip to content

ComplexHeart/php-criteria

Repository files navigation

Criteria (a.k.a Filter)

Test Quality Gate Status Coverage

Small implementation of a filter criteria pattern in PHP for Complex Heart SDK. Compose several filters using fluent interface.

Installation

Just install the package from Packagist using composer:

composer require complexheart/php-criteria

Usage

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);

About

Implementation of Criteria patterns in PHP for Complex Heart SDK.

Topics

Resources

License

Stars

Watchers

Forks

Languages