php_interface, init.php и служебные файлы
Файл /local/php_interface/init.php подключается на каждом хите еще до старта пользовательской сессии и авторизации, поэтому его используют только для регистрации обработчиков событий и автозагрузки. Размещение в нем объемной бизнес-логики и вспомогательных классов приводит к замедлению отклика сайта и риску падения всей системы при любой синтаксической ошибке.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
init.php: точка подключения проектного кода
-
2
Файлы, которые ядро подключает автоматически
-
3
dbconn.php, .settings.php и их место
-
4
Что нельзя класть в init.php
Материалы
Официальная документация
-
Структура директорий Новая дока
-
Конфигурация ядра Новая дока
Проверь себя
Создали /local/php_interface/init.php, и обработчики из /bitrix/php_interface/init.php перестали работать. Почему?
Ядро подключает init.php через getLocalPath(): если файл есть в /local, версия из /bitrix не подключается вовсе. Обработчики нужно перенести, а старый файл убрать, чтобы не путать следующего.
Почему в init.php нельзя читать $_SESSION и что делать, если данные сессии нужны для регистрации обработчика?
init.php выполняется до открытия сессии, переменная ещё недоступна. Читать сессию нужно внутри обработчика в момент события, а не при его регистрации.
Заказчик просит «выключатель» init.php через GET-параметр на случай ошибки. Чем это плохо?
Это ровно то, что документация запрещает: любой посетитель сможет отключить обработчики и защиту. Защита от ошибки — тестовый стенд и минимум кода в init.php, а логика в модуле.
Чем dbconn.php отличается от .settings.php, если подключение к базе есть в обоих?
dbconn.php — константы для старого ядра, подключается раньше всего; .settings.php — конфигурация D7. Ядро использует оба, и они должны совпадать; с main 24.100.0 оба могут лежать в /local.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить