Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/webarchitect609/bitrix-orm-tools
Bitrix orm table class tools.
https://github.com/webarchitect609/bitrix-orm-tools
bitrix bitrix-d7 bitrix-orm composer composer-library php
Last synced: 3 months ago
JSON representation
Bitrix orm table class tools.
- Host: GitHub
- URL: https://github.com/webarchitect609/bitrix-orm-tools
- Owner: webarchitect609
- License: bsd-3-clause
- Created: 2019-04-30T10:31:59.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-09-03T12:27:55.000Z (5 months ago)
- Last Synced: 2024-10-11T16:13:44.837Z (4 months ago)
- Topics: bitrix, bitrix-d7, bitrix-orm, composer, composer-library, php
- Language: PHP
- Size: 40 KB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
Битрикс ORM инструменты
=======================
[![Travis Build Status](https://travis-ci.com/webarchitect609/bitrix-orm-tools.svg?branch=master)](https://travis-ci.com/webarchitect609/bitrix-orm-tools)
[![Latest version](https://img.shields.io/github/v/tag/webarchitect609/bitrix-orm-tools?sort=semver)](https://github.com/webarchitect609/bitrix-orm-tools/releases)
[![Downloads](https://img.shields.io/packagist/dt/webarchitect609/bitrix-orm-tools)](https://packagist.org/packages/webarchitect609/bitrix-orm-tools)
[![PHP version](https://img.shields.io/packagist/php-v/webarchitect609/bitrix-orm-tools)](https://www.php.net/supported-versions.php)
[![License](https://img.shields.io/github/license/webarchitect609/bitrix-orm-tools)](LICENSE.md)
[![More stuff from me](https://img.shields.io/badge/packagist-webarchitect609-blueviolet)](https://packagist.org/packages/webarchitect609/)**Пожалуйста, будьте осторожны:** это пока нестабильная версия без покрытия Unit-тестами!
Вспомогательные инструменты для работы с Битрикс D7 ORM.
Возможности
-----------
- Генерация описания полей таблицы хранения немножественных свойств элемента инфоблока.Установка
---------
1. Установить через [composer](https://getcomposer.org/):```bash
composer require webarchitect609/bitrix-orm-tools
```
2. Добавить подключение [автозагрузчика](https://getcomposer.org/doc/01-basic-usage.md#autoloading) composer в самое
начало [файла init.php](https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=2916&LESSON_PATH=3913.4776.2916)
```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`)
воспользоваться созданным классом;```php
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`
```php
require_once 'vendor/webarchitect609/bitrix-user-type/src/inc/aliases.php';
```Лицензия и информация об авторе
--------------------------------[BSD-3-Clause](LICENSE.md)