Travis Build Status Latest version Downloads PHP version License More stuff from me
Пожалуйста, будьте осторожны: это пока нестабильная версия без покрытия Unit-тестами!
Вспомогательные инструменты для работы с Битрикс D7 ORM.
- Генерация описания полей таблицы хранения немножественных свойств элемента инфоблока.
-
Установить через composer:
composer require webarchitect609/bitrix-orm-tools
-
Добавить подключение автозагрузчика 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()
- Обновить
webarchitect609/bitrix-user-type >= 0.9.0 - Предпочтительнее заменить в клиентском коде
\WebArch\BitrixOrmTools\Field\TimeFieldна\WebArch\BitrixUserPropertyType\Field\TimeField. Временное решение: вinit.phpпосле подключенияvendor/autoload.phpактивировать скрипт установки алиасаvendor/webarchitect609/bitrix-user-type/src/inc/aliases.phprequire_once 'vendor/webarchitect609/bitrix-user-type/src/inc/aliases.php';