darkfriend/hlhelpers 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

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

darkfriend/hlhelpers

Composer 安装命令:

composer require --dev darkfriend/hlhelpers

包简介

Helper for Highloadblock Bitrix

README 文档

README

Набор методов для работы с highloadblock 1С-Битрикс

Содержание

Установка

Способ 1:

  • Переходим в папку /local/php_interface/lib/
  • composer require darkfriend/hlhelpers
  • В файле /local/php_interface/init.php пишем require __DIR__.'/lib/vendor/autoload.php'
  • Готово

Способ 2:

  • Копируем репозиторий в папку /local/php_interface/lib/
  • В файле /local/php_interface/init.php пишем require __DIR__.'/lib/hlhelpers/HLHelpers.php'
  • Готово

Как пользоваться?

Создать HighloadBlockTable

<?php
    use Darkfriend\HLHelpers;
    $nameHLBlock = 'TestHlBlock';
    $tableName = 'test_table_hl_block';
    $id = HLHelpers::getInstance()->create($nameHLBlock,$tableName);
    print_r($id); // id|false HighloadBlock
    // если $id === false
    // print_r(HLHelpers::$LAST_ERROR);
?>

Добавить поле в HighloadBlockTable

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    // описание какие данные указывать в $arFields тут https://dev.1c-bitrix.ru/learning/course/?COURSE_ID=43&LESSON_ID=3496
    $arField = [
    	'FIELD_NAME' => 'UF_TEST',
        'USER_TYPE_ID' => 'string',
        'SORT' => '100',
        'MULTIPLE' => 'N',
        'MANDATORY' => 'N',
        'SETTINGS' => [
            'DEFAULT_VALUE' => 'empty',
        ],
        'EDIT_FORM_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
        'LIST_COLUMN_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
    ];
    $id = HLHelpers::getInstance()->addField($hlblockID,$arField);
    print_r($id); // id|false поля
    // если $id === false
    // print_r(HLHelpers::$LAST_ERROR);
?>

Обновить поле в HighloadBlockTable по ID

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $fieldID = 1;
    $arField = [
        'SORT' => '100',
        'MANDATORY' => 'Y',
        'SETTINGS' => [
            'DEFAULT_VALUE' => 'empty',
        ],
        'EDIT_FORM_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
        'LIST_COLUMN_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
    ];
    $id = HLHelpers::getInstance()->updateField($hlblockID, $fieldID, $arField);
    print_r($id); // bool, как результат
?>

Обновить поле в HighloadBlockTable по UF_NAME

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $ufName = 'UF_TEST';
    $arField = [
        'SORT' => '100',
        'MANDATORY' => 'Y',
        'SETTINGS' => [
            'DEFAULT_VALUE' => 'empty',
        ],
        'EDIT_FORM_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
        'LIST_COLUMN_LABEL' => [
            'ru' => 'Тестовое поле',
            'en' => 'Test field',
        ],
    ];
    $id = HLHelpers::getInstance()->updateFieldByName($hlblockID, $ufName, $arField);
    print_r($id); // bool, как результат
?>

Удалить поле или поля в HighloadBlockTable

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $result = HLHelpers::getInstance()->removeFields($hlblockID,[
        'UF_FIELD_1',
        'UF_FIELD_2',
    ]);
    print_r($result); // true|false
?>

Удалить HighloadBlockTable

<?php
    use Darkfriend\HLHelpers;
    $hlblockID = 1;
    $result = HLHelpers::getInstance()->deleteHighloadBlock($hlblockID);
    print_r($result);
?>

Получить все highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $arHL = HLHelpers::getInstance()->getList();
    print_r($arHL);
?>

Получить все элементы highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    
    $arHlElements = HLHelpers::getInstance()->getElementList($hlID);
    print_r($arHlElements);
?>

Получить количество строк в highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    $filters = ['UF_FIELD_FIILTER'=>1];
    $totalElements = HLHelpers::getInstance()->getTotalCount($hlID, $filters);
    print_r($totalElements);
?>

Добавить новый элемент в highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    // массив добавляемых значений, колонка=>значение
    $arFields = [
        'UF_FIELD1' => 'VALUE'
        ...
    ];
    
    $id = HLHelpers::getInstance()->addElement($hlID, $arFields);
    var_dump($id);
    // при false ошибка будет в HLHelpers::$LAST_ERROR
?>

Обновить элемент в highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    $elID = 1; // идентификатор элемента
    // массив обновляемых значений, колонка=>значение
    $arFields = [
        'UF_FIELD1' => 'VALUE2'
        ...
    ];
    
    $isUpd = HLHelpers::getInstance()->updateElement($hlID, $elID, $arFields);
    var_dump($isUpd);
    // при false ошибка будет в HLHelpers::$LAST_ERROR
?>

Удалить элемент из highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $hlID = 1; // идентификатор highloadblock
    $elID = 1; // идентификатор элемента
    
    $isDel = HLHelpers::getInstance()->deleteElement($hlID, $elID);
    var_dump($isDel);
    // при false ошибка будет в HLHelpers::$LAST_ERROR
?>

Работа с полем вида "список" в highloadblock

Получить все значения поля список у highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $fieldName = "UF_FIELD"; // название поля
    
    $arValues = HLHelpers::getInstance()->getFieldValues($fieldName);
    print_r($arValues);
?>

Получить значение списка из highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $fieldName = "UF_FIELD"; // название поля
    $valID = 1; // идентификатор значения
    
    $arValue = HLHelpers::getInstance()->getFieldValue($fieldName,$valID);
    print_r($arValue);
?>

Получить значение списка по его XML_ID из highloadblock

<?php 
    use Darkfriend\HLHelpers;
    $fieldName = "UF_FIELD"; // название поля
    $codeName = "CODE_VALUE"; // XML_ID значения
    
    $arValue = HLHelpers::getInstance()->getFieldValueByCode($fieldName,$codeName);
    print_r($arValue);
?>

Гибкость в работе с highloadblock

Для обеспечения лучшей гибкости использовать:

  • getEntityTable($hlblockID)
  • getElementsResource($hlblockID,$arFilter=[],$arOrder=["ID" => "ASC"],$arSelect=['*'],$arMoreParams=[])

Гибкость в работе с полем вида "список" у highloadblock

Для обеспечения лучшей гибкости использовать:

  • getFieldValuesList($arSort=['SORT'=>'ASC'],$arFilter=[])

darkfriend/hlhelpers 适用场景与选型建议

darkfriend/hlhelpers 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 76 次下载、GitHub Stars 达 22, 最近一次更新时间为 2019 年 02 月 28 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「development」 「helper」 「dev」 「bitrix」 「highloadblock」 「1C-Bitrix」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

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

围绕 darkfriend/hlhelpers 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 76
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 22
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 22
  • Watchers: 3
  • Forks: 9
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2019-02-28