v_i_rus
@v_i_rus

Как подтягивать зависимости из дочернего composer репозитория?

Установил чистый ларавел, установил в него пакет nWidart/laravel-modules, сгенерировал новый модуль.
Установил внутри модуля другой композер пакет
Проблема следующая - при обращении изнутри модуля к пакету, установленному только в этот модуль, автозагрузчик композера не находит требуемый класс.
Единственное решение, которое я нашёл - в родительский composer.json в autoload.psr-4 прописывать все неймспейсы и пути до них вручную от корня проекта, типа такого
"autoload": {
        "psr-4": {
            "Modules\\": "Modules/",
            "Modules\\Elastic\\": "Modules/Elastic/",
            "Elastic\\Elasticsearch\\": "Modules/Elastic/vendor/elasticsearch/elasticsearch/src/",
            "Elastic\\Transport\\": "Modules/Elastic/vendor/elastic/transport/src/",
        }
    }

Можно ли каким-либо образом настроить автозагрузку пакетов из модуля, не прописывая каждый вручную?
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
@iljaGolubev
низя. да и неправильно это.
Вы должны устанавливать зависимости в корень проекта а не в модуль.
https://docs.laravelmodules.com/v10/creating-a-module #Composer.json
В модуле нужно просто прописать зависимость в composer.json да и то, только если собираетесь его распространять (или самостоятельно устанавливать) как пакет ларавель.

Собственно php `artisan module:install` делает тоже самое - ставит зависимости модуля в корень приложения.

Орбращение к Elastic\Transport из модуля и из основного кода логично выглядит Elastic\Transport\чтототам без всяких танцев.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы