Вызов метода пакета в библиотеке в laravel 4

81
13

Я использую мандрилл для проекта в laravel.

Я могу отправить тестовые электронные письма в контроллер, добавив ниже код

$payload = array(
'message' => array(
'subject' => 'Transactional email via Mandrill',
'html' => 'It works!',
'from_email' => 'fromemail@example.com',
'to' => array(array('email'=>'kwanghock@kwanghock.com.sg'))
)
);

$response = Mandrill::request('messages/send', $payload);

Однако, когда я перемещаю этот кусок кода в библиотеку, он дает мне

Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'Project\Email\Mandrill_lib\Mandrill' not found

Я использую пакет из https://github.com/doxxon/Laravel-Mandrill-Request

Мой код библиотеки ниже

<?php namespace Project\Email\Mandrill_lib;

use LaravelMandrillRequest\Facades\LaravelMandrillRequestServiceProvider;
use LaravelMandrillRequest\Facades\MandrillRequest;

class MandrillEmail implements MandrillInterface {

public function send($emails)
{
foreach($emails as $email)
{
$payload = array(
'message' => array(
'subject' => 'Transactional email via Mandrill',
'html' => 'It works!',
'from_email' => 'fromemail@example.com',
'to' => array(array('email'=>'kwanghock@kwanghock.com.sg'))
)
);

$response = Mandrill::request('messages/send', $payload);

}
}
}

спросил(а) 2014-02-19T14:39:00+04:00 6 лет, 7 месяцев назад
1
Решение
57

Вы тоже должны user Mandrill:

use LaravelMandrillRequest\Facades\LaravelMandrillRequestServiceProvider;
use LaravelMandrillRequest\Facades\MandrillRequest;
use Mandrill; /// here!

class MandrillEmail implements MandrillInterface {
...
}

Или он попытается использовать его через ваше собственное пространство имен

Class 'Project\Email\Mandrill_lib\Mandrill' not found

ответил(а) 2014-02-19T15:09:00+04:00 6 лет, 7 месяцев назад
41

Таким образом, он не упоминается надлежащим образом или не признается композитором. Сначала проверьте файл composer.json и убедитесь, что вы установили путь или пространство имен в эту новую структуру библиотеки (новые относительно стандартных папок приложений). Затем сделайте композитор dumpautoload. Обратите внимание, что контроллеры в приложении по умолчанию помечены именами.

ответил(а) 2014-02-19T14:54:00+04:00 6 лет, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема