При подключении компонента 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-библиотеки и пр.