← К заметкам

Заметки

Как организовать классы модуля в /local/modules/.../lib

Автозагрузка D7 связывает namespace с ID модуля и путём внутри lib. Если файл есть, а класс не находится, сначала проверьте эту связь.

Для модуля example.tools класс Example\Tools\Service\DealSync можно разместить в lib/service/dealsync.php. Перед использованием модуль подключают через Loader::includeModule('example.tools').

Используйте нижний регистр в путях, рассчитанных на штатную автозагрузку. Ошибка регистра может остаться незаметной на Windows и проявиться после переноса на Linux.

Если структура проекта отличается от принятой схемы, зарегистрируйте классы явно через Loader::registerAutoLoadClasses. Не нужно одновременно поддерживать несколько противоречащих друг другу карт одного класса.

Документация: registerautoloadclasses.