1. Go to this page and download the library: Download hibit-dev/criteria library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
hibit-dev / criteria example snippets
use Hibit\Criteria;
use Hibit\CriteriaPagination;
final class UserSearchCriteria extends Criteria
{
public const PER_PAGE = 10;
private ?string $email = null;
private ?string $name = null;
public static function create(
string $email = null,
string $name = null
): UserSearchCriteria {
$criteria = new self(CriteriaPagination::create(self::PER_PAGE));
if (!empty($email)) {
$criteria->email = $email;
}
if (!empty($name)) {
$criteria->name = $name;
}
return $criteria;
}
public function email(): ?string
{
return $this->email;
}
public function name(): ?string
{
return $this->name;
}
}
use Hibit\CriteriaPagination;
use Hibit\CriteriaSort;
use Hibit\CriteriaSortDirection;
class CriteriaTestClass
{
public function __invoke(UserRepository $userRepository): array
{
// Pagination criteria: limit=10 offset=0
$pagination = CriteriaPagination::create(10, 0);
// Sorting criteria: created_at ASC
$sorting = CriteriaSort::create('created_at', CriteriaSortDirection::ASC);
// Filter criteria: name=John
$userSearchCriteria = UserSearchCriteria::create(null, 'John');
$userSearchCriteria->paginateBy($pagination)->sortBy($sorting);
return $userRepository->searchByCriteria($userSearchCriteria);
}
}