vf92/bitrix-base

扩展1С-Битри克斯平台功能。最小版本16.5.0,建议从版本17.5.2开始使用


README

BitrixBase

扩展Bitrix功能集

日志 - 日志记录器

LoggerFactory

获取日志记录器

$logger = \Vf92\Log\LoggerFactory::create('название лога');

LazyLoggerAwareTrait

可以在类中添加特性

use \Vf92\Log\LazyLoggerAwareTrait

这样就可以访问获取日志记录器的各种方法

$this->withLogName('name');
$this->log() // это логгер

使用日志记录器

$logger = LoggerFactory::create('fullHrefDecorator');
$logger->critical('Системная ошибка при получении пукбличного пути ' . $e->getTraceAsString());

BitrixUtils

组件 - 组件

BaseBitrixComponent

简化组件创建和统一的基类。特点

  • 包含日志记录器
  • 可以设置缓存键
  • 可以通过方法重新定义调用的模板
  • 默认启用缓存
  • 所有必要的操作都在此类的 prepareResult 中执行,如果逻辑更复杂,则重写 execute

构造函数 - 构造函数

如果实体未描述,则可以使用 dataManager

基本构造函数(EntityConstructor)

$dataManager = \Vf92\Constructor\EntityConstructor::compileEntityDataClass('Form', 'b_form');
//дальше работаем как обычно с объектом
$id = (int)$dataManager::query()->setSelect(['ID'])->setFilter(['SID' => $code])->exec()->fetch()['ID'];

简化单独表中信息块属性的构造函数(IblockPropEntityConstructor 和 IblockPropMultipleEntityConstructor)

$dataManager = \Vf92\Constructor\IblockPropEntityConstructor::getDataClass($iblockId);
$dataManager = \Vf92\Constructor\IblockPropMultipleEntityConstructor::getDataClass($iblockId);
//дальше работаем как обычно с объектом
$id = (int)$dataManager::query()->setSelect(['ID'])->setFilter(['CODE' => $code])->exec()->fetch()['ID'];

用户 - 用户和用户组

UserGroupHelper

用于获取用户组数据的助手

  • getGroupIdByCode - 返回用户组ID按其代码

UserHelper

用于获取用户数据的助手

  • isInGroup - 检查用户是否在组中
  • getLoginByHash - 返回用户按其记忆的授权哈希的登录名

Iblock - 信息块

IblockHelper

信息块助手

  • getIblockId - 返回信息块ID按其类型和字符代码
  • getIblockXmlId - 返回信息块XML ID按其类型和字符代码
  • getPropertyId - 返回信息块属性ID按字符代码
  • isIblockTypeExists - 检查信息块类型是否存在

HLBlock - 高负荷块

HLBlockHelper

获取关于highload块的信息,例如通过表名获取ID

  • getIdByName - 获取按名称的highload块ID
  • getIdByTableName - 获取按表名的highload块ID

HLBlockFactory

创建dataManager对象

  • createTableObject - 返回按其实体名称编译的HL块实体。
  • createTableObjectByTable - 返回按其数据库中表名称编译的HL块实体。

表单 - 表单

FormHelper

  • getIdByCode - 按代码获取表单ID
  • checkRequiredFields - 检查表单必填字段
  • validEmail - 验证电子邮件
  • addResult - 添加结果(填充表单)
  • saveFile - 保存文件
  • addForm - 添加表单
  • addStatuses - 添加状态
  • addQuestions - 添加问题
  • addAnswers - 添加答案
  • addMailTemplate - 生成邮件模板
  • deleteForm - 删除表单
  • getRealNamesFields - 获取表单字段的实际名称
  • getQuestions - 获取问题

装饰器 - 装饰器

FullHrefDecorator

允许通过相对路径获取网站的绝对路径

$fullPath = (new \Vf92\Decorators\FullHrefDecorator($path))->getFullPublicPath();

Config - 配置文件工作

Dbconn - dbconn工作

  • get - 以数组形式获取数据
  • save - 将数组中的数据保存到文件

助手 - 助手

DateHelper - 继承自misc datehelper

  • convertToDateTime - 将Bitrix日期对象转换为Php
  • formatDate - FormatDate的包装器。额外功能
    • ll - 周的宾语形式显示(周五,周六)
    • XX - '今天', '明天'
  • getFormattedActiveDate - 格式化日期范围
    • "从1月1日到9月31日"
    • "从6月1日到9月31日"
    • "从2017年6月1日到2018年9月31日"
    • "从6月1日到2018年9月31日"
    • "从6月1日"
    • "从6月1日2018年"
    • "到6月1日2018年"
    • "至 01 июня"

MenuHelper

  • getMultiLvlArray - 从一维数组获取多维菜单数组
  • countMultiArray - 计算当前和嵌套元素的元素数量

TaggedCacheHelper

用于简化标签缓存操作的类,有两种工作模式:静态和动态(通过对象)

  • addManagedCacheTags - 以数组形式添加标签
  • clearManagedCache - 按标签清理缓存
  • addManagedCacheTag - 添加单个标签
  • getTagCacheInstance - 获取标签缓存对象
  • start - 开始标签缓存
  • end - 结束标签缓存
  • addTags - 添加标签
  • addTag - 添加标签
  • abortTagCache - 中断标签缓存(abort)

Mysql - 通过 dataQuery 对象对 Mysql 查询提供额外功能

MysqlBatchOperations

支持条件的大规模表格操作

  • batchUpdate - 按条件进行大规模数据更新
  • batchDelete - 按条件进行大规模删除
  • batchInsert - 进行大规模插入
  • getPart - 按限制获取数组的一部分
  • getLimit - 获取 limit 中的限制
  • setLimit - 在 limit 中设置限制
  • getTable - 获取表名
  • setTable - 设置表名
  • getQuery - 获取设置的 Query 对象
  • setQuery - 设置 Query 对象

ExtendsBitrixQuery

获取构建的查询(选择、过滤器)

  • getBuildWhere - 获取构建的条件(where)
  • getBuildOrder - 获取构建的排序(order)

Migration

SprintMigrationBase - 迁移助手的基本类

  • getHelper - 获取助手
  • log - 获取日志记录器 包含额外的助手

BitrixUtils - 其他功能

未分配的函数

  • isAjax - 比特检查 Ajax
  • bool2BitrixBool - 将布尔值转换为比特布尔值
  • bitrixBool2bool - 将比特布尔值转换为布尔值
  • extractErrorMessage - 从结果对象中获取错误

MiscUtils

EvType - 定义项目类型(dev,prod)

  • getServerType - 获取服务器类型
  • isProd - 这是 prod(布尔值)
  • isDev - 这是 dev(布尔值)
  • isStage - 这是 stage(布尔值)

MiscUtils - 其他功能

  • getClassName - 获取不带命名空间的名字
  • trimArrayStrings - 递归修剪数组值
  • getFormattedSize - 获取格式化大小(Kb,Mb...)
  • eraseArray - 递归删除空元素
  • getUniqueArray - 比较数组并获取差异,递归

Debug

####Logger - 旧日志记录器

  • getInstance - 获取对象
  • activate - 开启和关闭
  • setType - 设置日志文件名
  • write - 写入数据 -字符串或数组
  • writeEndLine - 写入长分隔符
  • writeSeparator - 写入分隔符

####CheckResources - 资源快照

  • getInstance - 获取对象
  • setStep - 设置下一个步骤
  • init - 启动第一个步骤
  • show - 输出到屏幕
  • get - 获取数组值
  • setUse - 开启和关闭

Helpers

WordHelper

用于处理单词的类 - 例如词尾

  • declension - 返回数词后面的名词所需形式
  • showWeight - 返回格式化的重量
  • showLengthByMillimeters - 返回格式化的长度(厘米) - 以毫米为单位指定
  • numberFormat - 格式化输出数字,具有删除无关紧要的零和四舍五入到所需精度的能力
  • clear - 清除文本中的杂质(标签,多余的符号)
  • formatSize - 获取格式化大小(Kb,Mb...)

ClassFinderHelper

获取类列表

  • getClasses - 在特定文件夹中搜索与名称匹配的类

DateHelper

处理日期的助手

  • replaceRuMonth - 按照模板替换俄语月份
  • replaceRuDayOfWeek - 按照模板替换星期几

PhoneHelper

处理和标准化电话

  • isPhone - 根据规范化规则检查电话号码。只允许以7或8开头的10位数字号码
  • normalizePhone - 规范化电话号码。
    • 返回格式为xxxxxxx(10位数字,无分隔符)的电话号码
    • 如果$phone不是号码,则抛出异常
  • formatPhone - 按照模板格式化电话号码