Подключать компоненты 2.0 без копирования файлов из модуля

Рейтинг: 2.0000  
Новая
Предложил Калинин Никита 07.05.2020 09:05:15

Подключать компоненты 2.0 без копирования файлов из модуля

При подключении компонента namespace:componentname, искать его в следующих каталогах, взять первый найденный:
  • <docroot>/local/components/namespace/componentname
  • <docroot>/bitrix/components/namespace/componentname
  • Если ModuleManager::isModuleInstalled('namespace'):
  • <docroot>/local/modules/namespace/components/componentname
  • <docroot>/bitrix/modules/namespace/components/componentname
Конкретно в каталог components внутри модуля не закрывать доступ по HTTP(S), если такое решение будет принято.

Например, код
$APPLICATION->IncludeComponent(
        'partner.module:component.name',
        ''
);
подключит компонент, находящийся в каталоге
<docroot>/local/modules/partner.module/components/component.name

Зачем это нужно?
  • Партнеры смогут тратить меньше сил на создание установщиков (не нужно копировать файлы).
  • Партнерам проще деплоить (устанавливать и обновлять) кастомные модули, которые не распространяются через Маркетплейс.
На мой взгляд, предложение выглядит обратно совместимым.

В будущем можно реализовать аналогичные функции для CSS/JS/расширений UI-библиотеки и пр.

Рейтинг: 0  
Волков Алексей 13.05.2020 11:18:16
Я не согласен с таким предложением. Может конечно я привык к логике которая сейчас, но в большинстве случаев шаблоны компонента нужно править, а их не оставишь в модуле. Так проще весь компонент хранить вне модуля и не давать лишний доступ к папкам всем подряд.