Папка Composer — поставщика внутри папки поставщика — класс не найден

#php #composer-php #vendor

#php #композитор-php #поставщик

Вопрос:

структура проекта, которую я имею, выглядит следующим образом:

 -src
-vendor             // from now on vendorA
-- module1
--- vendor          // from now on vendorB
---- module2
-Public
--index.php
 

Я пытаюсь установить дополнительный модуль в vendorB с помощью composer require. После установки все кажется нормальным (composer.блокировка обновляется, создаются папки module2 и т.д.). Но когда я запускаю код, я получаю ошибку «Класс не найден» (ошибка относится к классу из module2, когда я пытаюсь его инициализировать).

Я запускаю composer require и composer update на уровне vendorB. Есть ли что-то еще, что я мог бы сделать?

Комментарии:

1. Зависимости не должны иметь собственного vendor каталога — все зависимости должны быть установлены в одном vendor каталоге на уровне проекта. Я не уверен, зачем вам нужно запускать composer update на уровне vendorB.

2. Почему именно вы хотите использовать эту структуру? Если вы хотите придерживаться его, пожалуйста, поделитесь более подробной информацией

3. Это существующая структура на моем новом рабочем месте, не совсем идеальная, если вы спросите меня, но все же я практически ничего не могу с этим поделать на данный момент. Более подробно, основное приложение имеет VendorA, где внутри него находится module1, который является пользовательским модулем (не совсем микросервисом, но, скажем, это что-то близкое к нему) с собственным репозиторием и функциональностью. Суть в том, что module1 должен быть общим для различных проектов / приложений. Мне нужно установить на него phpspreadsheet (vendorB), но, как сказано, «класс не найден». Надеюсь, теперь это как-то понятнее.