Как правильно использовать composer при написании плагина? Есть решение

Я пишу плагин, где через форму на витрине принимаю файл на сервер(.xls, .xlsx) и обрабатываю под свои нужды. Наткнулся на библиотеку, вроде то, что надо. Установил её с помощью composer в /lib/.

Ниже структура на текущий момент.

Пытаюсь подтянуть нужные мне классы из пакета phpoffice в классе контроллера, но ничего не выходит, сервер отдаёт 500 ошибку.

Подскажите, что не так? Как правильно использовать composer в плагине?

1 ответ

  • 2
    Eugen Nichikov 7 марта 2019 14:19 # Решение

    В require путь неправильно указан: он идёт от корня диска.

    А вообще лог ошибок PHP показал бы текст ошибки, которая выдаёт 500ю.

    • +1
      devellopah devellopah 7 марта 2019 19:13 #

      поменял на 

      require wa()->getAppPath('plugins/ketanaSearch/lib/vendor/autoload.php',  'shop');

      и всё заработало. Спасибо за помощь)

    • +1
      devellopah devellopah 7 марта 2019 23:39 #

      лучше так

      require __DIR__ . '/../vendor/autoload.php';
      

      • +1
        enso_studio@mail.ru enso_studio@mail.ru 7 марта 2019 23:43 #

        Лучше подключать в методе execute:

        require_once $this->getPluginRoot().'/lib/vendor/autoload.php';

        О use лучше вообще забыть т.к. может загрузиться не тот класс.

        • +1
          devellopah devellopah 8 марта 2019 01:14 #

          закинул в execute(), избавился от use

          p.s. 

          О use лучше вообще забыть т.к. может загрузиться не тот класс.

          Как может так произойти? Не могли бы вы объяснить.

          • +1
            enso_studio@mail.ru enso_studio@mail.ru 8 марта 2019 04:36 #

            названия классов совпадут и возникнет ошибка, это конечно маловероятно, но возможно

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите