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;
use Hibit\CriteriaSort;
final readonly class UserSearchCriteria extends Criteria
{
public ?string $name;
public ?string $email;
public static function create(
CriteriaPagination $pagination,
CriteriaSort $sort,
?string $name = null,
?string $email = null,
): UserSearchCriteria {
$criteria = new self($pagination, $sort);
$criteria->name = $name;
$criteria->email = $email;
return $criteria;
}
}
use Hibit\CriteriaPagination;
use Hibit\CriteriaSort;
use Hibit\CriteriaSortDirection;
class UserRepository
{
public function searchByCriteria(UserSearchCriteria $criteria): array
{
// Start query builder to apply filtering
if ($criteria->name !== null) {
// Apply name filter: $criteria->name
}
if ($criteria->email !== null) {
// Apply email filter: $criteria->email
}
if ($criteria->pagination !== null) {
// Apply limit: $criteria->pagination->limit
// Apply offset: $criteria->pagination->offset
}
if ($criteria->sort) {
// Apply sorting field: $criteria->sort->field->value()
// Apply sorting direction: $criteria->sort->direction->value()
}
// Execute the query and return the results
}
}
use Hibit\CriteriaPagination;
use Hibit\CriteriaSort;
use Hibit\CriteriaSortDirection;
class CriteriaTestClass
{
public function __invoke(UserRepository $userRepository): array
{
return $userRepository->searchByCriteria(
UserSearchCriteria::create(
CriteriaPagination::create(), // Default pagination
CriteriaSort::create('created_at', CriteriaSortDirection::DESC),
'John'
)
);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.