Не обнаружить внешнюю библиотеку (Phpoffice) в yii2 - PullRequest
0 голосов
/ 27 апреля 2018

Два компьютера работают в одном и том же хранилище, но первый компьютер обнаруживает библиотеку и работает хорошо, но второй компьютер не обнаруживает ее и показывает «Ошибка» PhpOffice \ Phpspreadsheet \ Reader \ Xlsx «not found».

Вендорская библиотека также существует.

composer.json и composer.lock также одинаковы на обоих компьютерах.

Во-первых, с помощью git ignore я использую механизм компоновки yii на 1-м компьютере, но на втором компьютере (ошибочный компьютер) я добавляю библиотеку вручную.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Копирование файлов библиотеки в каталог vendor недостаточно для его установки. Во время установки Composer создает скрипт автозагрузки с информацией о том, как найти все классы, установленные Composer. Если вы просто скопируете библиотечные файлы, Composer даже не узнает, что он существует, и не сможет загрузить из него какой-либо класс.

Если вы не можете использовать Composer на сервере / компьютере A, вы должны установить все зависимости на другом компьютере (B) и скопировать весь каталог vendor на сервер / компьютер A. Определения автозагрузки находятся в vendor, поэтому он должен работать если вы копируете всю директорию.

0 голосов
/ 27 апреля 2018

Если вы хотите использовать пакет composer, вам абсолютно необходимо установить его с помощью composer. Это гарантирует, что автозагрузчик сгенерирован правильно и ваш класс может быть найден через PHP.

...