承接 vsavritsky/bitrix-filter-builder 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vsavritsky/bitrix-filter-builder

Composer 安装命令:

composer require vsavritsky/bitrix-filter-builder

包简介

Библиотека для простого создания фильтра

README 文档

README

Библиотека предлагает работать с фильтром битрикса в стиле ООП

use BitrixFilterBuilder\Filter:

//Инициализация экземпляра класса
$filter = Filter::create(); // или $filter = new Filter;
// Фильтрация по ID c пустым свойством TEST и цена с диапазоне от 1 до 10
$filter->eq('ID', 2)->eq('ID', 2)->isNull('PROPERTY_TEST')->between('CATALOG_PRICE_1', 1, 100);

Основные параметры

eq($field, $value) - Совпадение значения

$filter->eq('ID', 2);

//аналогично фильтру битрикс
$filter = ['ID' => 2];

neq($field, $value) - Исключить значение

$filter->neq('ID', 2);

//аналогично фильтру битрикс
$filter = ['!ID' => 2];

like($field, $value) - Поиск по подстроке

$filter->like('NAME', 'товар');

//аналогично фильтру битрикс
$filter = ['%NAME' => 'товар'];

notLike($field, $value) - Поиск по отсутствию подстроки

$filter->notLike('NAME', 'товар');

//аналогично фильтру битрикс
$filter = ['!%NAME' => 'товар'];

isNull($field) - Поиск по пустому значению

$filter->isNull('PROPERTY_CODE');

//аналогично фильтру битрикс
$filter = ['PROPERTY_CODE' => false];

isNotNull($field) - Поиск по заполненному значению

$filter->isNotNull('PROPERTY_CODE');

//аналогично фильтру битрикс
$filter = ['!PROPERTY_CODE' => false];

in($field, $array) - Соответствие значению массива

$filter->in('ID', [1, 2, 3, 4]); // как второй параметр принимает только массив
//можно так же использовать 
$filter->eq('ID', [1, 2, 3, 4]);

//аналогично фильтру битрикс
$filter = ['ID' => [1, 2, 3, 4]];

notIn($field, $array) - Исключение значений массива

$filter->notIn('ID', [1, 2, 3, 4]); // как второй параметр принимает только массив
//можно так же использовать 
$filter->neq('ID', [1, 2, 3, 4]);

//аналогично фильтру битрикс
$filter = ['!ID' => [1, 2, 3, 4]];

Сравнение

between($field, $min, $max) - Диапозон значений

$filter->between('ID', 1, 10);

//аналогично фильтру битрикс
$filter = [
    '>=ID' => 1,
    '<=ID' => 10,
];

gte($field, $value) - Больше или равно значения

$filter->gte('ID', 10);

//аналогично фильтру битрикс
$filter = ['>=ID' => 10];

lte($field, $value) - Меньше или равно значения

$filter->lte('ID', 10);

//аналогично фильтру битрикс
$filter = ['<=ID' => 10];

gt($field, $value) - Больше значения

$filter->gt('ID', 10);

//аналогично фильтру битрикс
$filter = ['>ID' => 10];

lt($field, $value) - Меньше значения

$filter->lt('ID', 10);

//аналогично фильтру битрикс
$filter = ['<ID' => 10];

Получить массив фильтра (методы одинаковы)

$arFilter = $filter->getResult();
$arFilter = $filter->toArray();
$arFilter = $filter->jsonSerialize();

Сложная логика

addOrFilter(Filter $filter) - Добавление логики "OR"

$subFilter->like('NAME', 'товар');
$subFilter->eq('CODE', 'tovar');
$filter->addOrFilter($subFilter);

//аналогично фильтру битрикс
$filter = [
    [
        'LOGIC' => 'OR',
        '%NAME' => 'товар',
        'CODE' => 'tovar'
    ]
];

addAndFilter(Filter $filter) - Добавление логики "AND"

$subFilter->like('NAME', 'товар');
$subFilter->neq('NAME', 'товар');
$filter->addAndFilter($subFilter);

//аналогично фильтру битрикс
$filter = [
    [
        'LOGIC' => 'AND',
        '%NAME' => 'товар',
        '!NAME' => 'товар'
    ]
];

setFilterLogic($logic) - Установить логику фильтра (OR или AND)

$filter->setFilterLogic('OR');

//аналогично фильтру битрикс
$filter = [
    'LOGIC' => 'OR'
];

addSubFilter(Filter $filter) - Добавить фильтр как параметр

$filter->setFilterLogic('OR');

$subFulter->eq('ID', 5);
$filter->addSubFilter($subFulter);
$subFulter->eq('ID', 10);
$filter->addSubFilter($subFulter);

//аналогично фильтру битрикс
$filter = [
    'LOGIC' => 'OR'
    ['ID' => 5],
    ['ID' => 10],
];

mergeWithFilter(Filter $filter) - Объединить фильтры

$subFilter->like('NAME', 'товар');
$filter->eq('NAME', 'товар');

$filter->mergeWithFilter($subFilter);
//аналогично фильтру битрикс
$filter = [
    'NAME' => 'товар'
    '%NAME' => 'товар',
];

vsavritsky/bitrix-filter-builder 适用场景与选型建议

vsavritsky/bitrix-filter-builder 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 440 次下载、GitHub Stars 达 1, 最近一次更新时间为 2021 年 08 月 13 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 vsavritsky/bitrix-filter-builder 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 vsavritsky/bitrix-filter-builder 我们能提供哪些服务?
定制开发 / 二次开发

基于 vsavritsky/bitrix-filter-builder 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 440
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 5
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2021-08-13