Не обнаружить внешнюю библиотеку (Phpoffice) в yii2
Два компьютера работают в одном и том же хранилище, но первый компьютер обнаруживает библиотеку и работает хорошо, но второй компьютер не обнаруживает ее и показывает "Ошибка" PhpOffice\Phpspreadsheet\Reader\Xlsx' not found".
У вендора библиотека тоже существует.
composer.json и composer.lock также одинаковы на обоих компьютерах.
Во-первых, с помощью git ignore я использую механизм компоновки yii на первом компьютере, а на втором (ошибочный компьютер) я добавляю библиотеку вручную.
2 ответа
Если вы хотите использовать пакет composer, вам абсолютно необходимо установить его с помощью composer. Это гарантирует, что автозагрузчик генерируется правильно и ваш класс может быть найден через PHP.
Копирование файлов библиотеки в vendor
каталога не достаточно для его установки. Во время установки Composer создает скрипт автозагрузки с информацией о том, как найти все классы, установленные Composer. Если вы просто скопируете библиотечные файлы, Composer даже не узнает, что он существует, и не сможет загрузить из него какой-либо класс.
Если вы не можете использовать Composer на сервере / компьютере A, вы должны установить все зависимости на другом компьютере (B) и полностью скопировать vendor
каталог на сервер / компьютер А. Определения автозагрузки находятся в vendor
так что это должно работать, если вы копируете всю директорию.