@romicohen
Системный Архитектор

Обязательно ли прописывать пространство имен Composer-пакета ("autoload") руками в composer.json основного приложения?

Решил сделать модуль для Laravel в виде Composer-пакета.

Устанавливаю из локального репозитория (папки). Всё устанавливается, но оно почему-то потом начинает искать класс вообще не пойми где:

Go3Y6Z4.png

Причем, если я ему пишу в основной composer.json приложения (в корне Laravel)

"autoload": {
        "psr-4": {
            "MeVendor\\Hello\\": "packages/mevendor/hello/src/"
        }
    },


тогда оно все прекрасно видит и работает.

Но ведь это же неправильно? Потому что я ему уже писал это в composer.json пакета. Он по идее оттуда должен копировать, да?

Я понимаю, что ему чего-то не хватает, но вот чего именно - не понимаю :)

Помогите пожалуйста, кто сталкивался с этими граблями -)

И да, вот composer.json пакета:

{
    "name": "mevendor/hello",
    "description": "Hello package!",
    "type": "project",
    "license": "MIT",
    "authors": [
        {
            "name": "mevendor",
            "email": "mevendor@yandex.ru"
        }
    ],
    "minimum-stability": "dev",
    "autoload": {
        "psr-4": {
            "MeVendor\\Hello\\": "src/"
        }
    },
    "require": {}
}
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
@romicohen Автор вопроса
Системный Архитектор
В общем, дело в том было, что я Composer запускал в Host-системе, а Laravel у меня запускается в Docker Compose :-)

После установки пакета через Composer который в контейнере - всё обнаружилось само и стало работать нормально ))

Я с вашего позволения не буду удалять этот топик - оставлю как памятник собственной тупости )))) А вдруг кто-то еще на эти грабли наступит :)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы