Всем привет! Помогите с автозагрузчиком composer. Структура сайта такая: backend common frontend. У backend и frontend свои контроллеры. В common общие модели и файл конфигурации. composer в директории common. что мне написать в psr-4 композитора, чтобы загрузчик был для backend и frontend отдельно, чтобы каждый свои контроллеры подключали? сейчас у меня так: PHP: "autoload": { "psr-4": { "common\\core\\": "core/", "common\\controllers\\": "controllers/", "common\\models\\": "models/", "common\\primitive\\": "primitive/", "backend\\core\\": "core/", "backend\\controllers\\": "controllers/", "frontend\\core\\": "core/", "frontend\\controllers\\": "controllers/" } } это же неправильно? такая ошибка: Невозможно загрузить файл G:\OSPanel\domains\myblog.local\common\primitive\frontend\controllers\ControllerPage.php откуда вообще взялся этот common\primitive
я думаю ошибка не в composer.json, а в коде php. покажи как выглядит место где вызывается ControllerPage. ошибка судя по всему возникает в момент создания объекта этого класса. надо проверить какой неймспейс в том модуле и как ты описал место вызова. подробнее: если, к примеру у тебя такой расклад PHP: <?php namespace common\primitive; // . . . $o = new frontend\controllers\ControllerPage(); то будет попытка создать объект класса \common\primitive\frontend\controllers\ControllerPage и автолоадер попытается обратиться к тому пути, который ты описал выше. вот так было бы правильней: PHP: $o = new \frontend\controllers\ControllerPage(); (обрати внимание на первый "\") или PHP: use frontend\controllers\ControllerPage; // . . . $o = new ControllerPage();
У него в кстати разные неймспейсы смотрят в одни и теже директории, вопрос зачем? И почему пути не относительны composer.json? При условии что он в конце проекта