Где хранить доработки 1С-Битрикс: папка local и модули D7
Почему нельзя изменять ядро, когда использовать local/php_interface и как устроить собственный модуль в local/modules.
Системные требования
Нужны доступ к файлам проекта, система контроля версий и тестовый контур. Перед переносом старого кода создайте резервную копию.
Смотреть системные требования1. Отделите ядро от кода проекта
Каталог /bitrix относится к поставке продукта. Изменения внутри ядра трудно сопровождать и они могут исчезнуть после обновления.
Собственные классы, обработчики, компоненты и модули размещайте в /local. Добавьте этот каталог в репозиторий проекта, а ядро и пользовательские файлы храните по отдельным правилам.
Документация D7
Используйте актуальную онлайн-документацию классов и модулей Bitrix Framework.
2. Используйте local/php_interface осознанно
Файл /local/php_interface/init.php подключается на каждом запросе. Оставляйте в нём только минимальную инициализацию: подключение автозагрузки и регистрацию обработчиков.
Не размещайте в init.php большие функции, запросы к базе и код, который выполняет работу при каждом открытии страницы. Синтаксическая ошибка в этом файле может остановить и публичную, и административную часть.
Совет
Не изменяйте bitrix/modules и системные компоненты bitrix/components/bitrix: система обновлений может перезаписать эти файлы.
3. Когда нужен собственный модуль
Создавайте модуль, если функциональность имеет настройки, таблицы, права, установку и удаление либо должна переноситься между проектами.
Пользовательские модули размещаются в /local/modules/vendor.module. API-классы D7 находятся в подпапке lib, имена файлов пишутся в нижнем регистре, а namespace соответствует идентификатору модуля.
4. Подключайте модуль через Loader
Перед использованием API модуля подключите его и обработайте ситуацию, когда он не установлен:
use Bitrix\Main\Loader;
if (!Loader::includeModule('iblock')) {
throw new RuntimeException('Модуль iblock не установлен');
}Не подключайте файлы ядра вручную через абсолютные пути — используйте публичный API платформы.
5. Подготовьте код к обновлениям
- храните
/localв Git; - фиксируйте поддерживаемые версии PHP и платформы;
- не используйте недокументированные внутренние файлы без необходимости;
- проверяйте модуль на копии проекта после обновления;
- описывайте установку, миграции и откат.
Официальный урок «Модули в D7» и документация по init.php.
Была ли эта статья полезной?
Спасибо за ваш отзыв!