-
Какие паттерны проектирования используется в ядре битрикса?
Схема модулей и компонентов является паттерном MVС, о чем упоминает документация. Также, по ее утверждению, в компонентах реализуется паттерн Carrier Rider Mapper. Статья https://dev.1c-bitrix.ru/community/webdev/user/2000/blog/what-design-patterns-using-bitrix/ описывает вероятное использвование еще и следующих паттернов: Observer, Singleton, Front controller, Adapter, Decorator. Но это не точно.
-
Как применяется ORM в D7?
Применяется по схеме Менеджер -> Сущность -> Поля. Генерируется ORM класс-наследник Bitrix\Main\Entity\DataManager в нём переопределяются методы getTableName (сущность) и getMap (поля сущности). На базе этого класса работаем с объектами данных таблиц.
-
В каких случаях нужно использовать result_modifier?
В случаях, когда нужно вывести дополнительные данные в $arResult без переписывания компонента.
-
В каких случаях нужно писать собственный компонент?
Если проще написать собственный, чем полностью переписывать логику существующих компонентов. Или же, если производительность компонента критична и нам нужно бороться за ресурсы сервера.
-
В каких случаях нужно писать собственный модуль?
В случаях, когда нам нужно задействовать одни и те-же собственные или кастомизированные компоненты в нескольких проектах. В этом случае можно легче устанавливать эти компоненты, обновлять их одновременно и меньше беспокоиться за стороннее вмешательство.
-
Как можно модифицировать поля при обмене с 1С?
Если используется стандартный механизм интеграции: для модификации при экспорте - кастомизировать компонент sale.export.1c, создать класс-наследник CSaleExport и вызовы в компоненте заменить на него. Для модификации при импорте - использовать событие OnSuccessCatalogImport1C.
-
Как получить значение свойства элемента инфоблока, используя D7?
Предположу, что потребуется обратиться с запросом к сущности через класс ElementTable, например: $result = \Bitrix\Iblock\ElementTable::getList(array('select' => array("NAME")));
-
Для чего нужна папка local?
Для всего кастомизированного, чтобы обновления ядра не затрагивали измененные файлы и наоборот.
700nov/bitrix_test
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|