Не обнаружить внешнюю библиотеку (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 так что это должно работать, если вы копируете всю директорию.

Другие вопросы по тегам