Ошибка установки пакета в фреймворке Yii2? - PullRequest
0 голосов
/ 24 мая 2018

У меня есть требование использовать PHPOffice / PhpSpreadsheet , чтобы установить PhpSpreadsheet Я перешел по этой ссылке.

Итак, я установил PhpSpreadsheet в свой проект, используя 'composer', выполнив команду

composer require phpoffice/phpspreadsheet

в командной строке при установке, сказав, что

Using version dev-master for phpoffice/phpspreadsheet

и был успешно установлен (проверьте скриншот), после установки, когда я пытался войти в свое приложение, я получаю другую ошибку, как

Cannot redeclare PHPMailerAutoload() 

(ранее объявлено в "для писем, которые я использую)'phpmailer', включая путь как

require_once('../vendor/phpmailer/PHPMailerAutoload.php');

, поскольку моя папка "PHPMailer" находится в папке vendor инфраструктуры Yii2.

Кстати, я создаю свое приложение на платформе Yii2 иЯ очень плохо знаком с фреймворком Yii2.

Может кто-нибудь подсказать, как это исправить? Спасибо.

enter image description here

1 Ответ

0 голосов
/ 24 мая 2018

Вам не нужно использовать require для пакетов, установленных через composer. Функция автозагрузки Yii позаботится об этом.Вам просто нужно написать соответствующие use операторы в вашем коде.На самом деле, почтовик - это компонент, объявленный в основном приложении , поэтому вам вообще не нужен оператор использования

Yii::$app->mailer->compose('/my/mail_view', ['model' => $model])
                ->setFrom([Yii::$app->params['myMail'] => 'My Name'])
                ->setTo($model->email)
                ->setSubject('My subject')
                ->send();
...