kosmosafive / bitrix-filter
Bitrix Filter
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/kosmosafive/bitrix-filter
Requires
- php: >=8.4
- kosmosafive/bitrix-ds: ^1.0
- kosmosafive/bitrix-localization: ^2.0
- ramsey/uuid: ^4.9
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.87
This package is auto-updated.
Last update: 2025-09-29 10:36:19 UTC
README
Модульное решение предоставляет механизм создания полей фильтра, прием и фильтрацию данных формы, применение модификаций. Является универсальным.
Field (Поле)
Сущность, описывающая поле фильтра. Примеры полей: булево, положительное целое, селектор выбора, функция, пользователь. Хранит конфигурацию поля (FieldConfig), значение поля. Отвечает за нахождение, фильтрацию и нормализацию данных поля в переданных данных формы. По необходимости поле может содержать дополнительный набор параметров. Например, поле выбора периода позволяет указать минимальную и максимальную даты для выбора; указать доступность выбора даты или даты и времени.
FieldConfig (Конфигурация поля)
Конфигурация поля хранит информацию о Свойстве (Property), идентификаторе поля.
Property (Свойство)
Отвечает за хранение информации о поле(-ях) в запросе (читай: название поля или префикс, используемый при построении запроса). Например, свойство номера (идентификатора) сущности обычно предполагает одно значение. В то время как свойство экспертизы хранит информацию об этапах, голосах.
QueryBuilder (Строитель запроса)
Для работы с конкретной реализацией построения запроса реализуется свой строитель. Например, могут быть реализованы: строитель ORM, строитель Elasticsearch, строитель ClickHouse. Принимает коллекцию полей и данные формы. Находит обработчик для полей и применяет требуемые модификации. Например, строитель ORM хранит объект запроса, который обогащается по мере применения модификаций.
HandlerConfig (Конфигурация обработчика)
Хранит информацию об обработчике поля (Handler) и классе поля, которое обрабатывает.
Handler (Обработчик)
Принимает строителя запроса, поле и данные формы. Применяет необходимые модификации на основе полученных данных. Обработчик может описывать различную логику. Например, эквивалентность, частичное содержание, промежуток, функцию.