Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

Битрикс ORM инструменты

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

Пожалуйста, будьте осторожны: это пока нестабильная версия без покрытия Unit-тестами!

Вспомогательные инструменты для работы с Битрикс D7 ORM.

Возможности

  • Генерация описания полей таблицы хранения немножественных свойств элемента инфоблока.

Установка

  1. Установить через composer:

    composer require webarchitect609/bitrix-orm-tools
  2. Добавить подключение автозагрузчика composer в самое начало файла init.php

    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()

Ошибка "Class \WebArch\BitrixOrmTools\Field\TimeField not found"

  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

About

Bitrix orm table class tools.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /