webarchitect609/bitrix-orm-tools

Bitrix orm 表类工具。

2.6.1 2024-09-03 12:26 UTC

This package is auto-updated.

Last update: 2024-09-03 12:28:18 UTC


README

Travis Build Status Latest version Downloads PHP version License More stuff from me

请注意:这是一个尚未经过单元测试的预发布版本!

用于处理Bitrix D7 ORM的辅助工具。

功能

  • 生成存储元素多个属性的字段描述。

安装

  1. 通过composer安装

    composer require webarchitect609/bitrix-orm-tools
  2. init.php文件的最开始添加composer自动加载器的连接

    require_once $_SERVER['DOCUMENT_ROOT'] . '/../../vendor/autoload.php';

使用

要使用生成元素多个属性的字段描述的功能

  • \WebArch\BitrixOrmTools\Iblock\Property\DynamicSinglePropertiesTable继承,并声明getIblockId()方法;
  • 在声明Bitrix\Main\Entity\ReferenceField(或Bitrix\Main\ORM\Fields\Relations\Reference)时使用创建的类;
use Bitrix\Iblock\ElementTable;
use Bitrix\Main\Entity\ReferenceField;
use Bitrix\Main\ORM\Query\Join;
use WebArch\BitrixOrmTools\Iblock\Property\DynamicSinglePropertiesTable;

class NewsSinglePropTable extends DynamicSinglePropertiesTable
{
    public static function getIblockId(): int
    {
        return 123;
    }
}

ElementTable::query()
            ->registerRuntimeField(
                new ReferenceField(
                    'NEWS_PROP',
                    NewsSinglePropTable::class,
                    Join::on('this.ID', 'ref.IBLOCK_ELEMENT_ID'),
                    ['join_type' => 'INNER']
                )
            );

已知特性

必须为所有属性描述转换器

如果使用元素自定义属性,可能会出现错误

Unsupported property type `S` with user type `Vendor\Package\NutritionValueProperty`

可以通过重新定义静态方法\WebArch\BitrixOrmTools\Iblock\Property\DynamicSinglePropertiesTable::getConverterList()并添加到现有转换器列表中,添加必要的转换器并返回它。

另一种选择是使用方法\WebArch\BitrixOrmTools\Iblock\Property\DynamicSinglePropertiesTable::ignoreUnsupportedPropertyType()忽略此类错误。

错误:"未找到类 \WebArch\BitrixOrmTools\Field\TimeField"

  1. 更新 webarchitect609/bitrix-user-type >= 0.9.0
  2. 最好在客户端代码中将\WebArch\BitrixOrmTools\Field\TimeField替换为\WebArch\BitrixUserPropertyType\Field\TimeField。临时解决方案:在init.php连接到vendor/autoload.php后,激活别名安装脚本vendor/webarchitect609/bitrix-user-type/src/inc/aliases.php
    require_once 'vendor/webarchitect609/bitrix-user-type/src/inc/aliases.php';

许可和作者信息

BSD-3-Clause