Bitrix /local: autoload.php — автозагрузка классов из lib
Регистрация классов /local/php_interface/lib через Loader::registerAutoLoadClasses. Официальный API Bitrix, без Composer.
Как использовать
- Разместите файл в /local/php_interface/autoload.php и подключите из init.php после constants.php.
- Классы положите в /local/php_interface/lib (например lib/Services/OrderService.php с namespace Project\Services).
- Добавляйте в массив новые пары [полное имя класса => путь от корня сайта].
Регистрация автозагрузки своих классов из /local/php_interface/lib через Loader::registerAutoLoadClasses. Первый параметр null — классы не принадлежат модулю ядра. Пути задаются от корня сайта ($_SERVER['DOCUMENT_ROOT']).
<?php
// /local/php_interface/autoload.php
use Bitrix\Main\Loader;
Loader::registerAutoLoadClasses(null, [
'Project\\Services\\OrderService' =>
'/local/php_interface/lib/Services/OrderService.php',
'Project\\Helpers\\Catalog' =>
'/local/php_interface/lib/Helpers/Catalog.php',
]);
Пример класса сервиса (логика не в init.php):
<?php
// /local/php_interface/lib/Services/OrderService.php
namespace Project\Services;
class OrderService
{
public static function onOrderSaved(\Bitrix\Main\Event $event): void
{
$order = $event->getParameter('ENTITY');
if (!$order) {
return;
}
// Обработка заказа: CRM, склад и т.д.
}
}
Замечания
Loader::registerAutoLoadClasses(string $moduleName, array $arClasses): при$moduleName = nullклассы считаются пользовательскими (не из модуля Bitrix).- Ключ массива — полное имя класса с namespace, значение — путь от корня сайта (начинается с
/local/). - Имена классов и пространства имён должны соответствовать PSR-4-подобной структуре каталогов (например,
Project\Services\OrderService→lib/Services/OrderService.php).