Работа Laravel с драйвером базы данных возвращает класс не найден - PullRequest
0 голосов
/ 21 января 2019

Я использую работу Laravel, которая обрабатывает определенные подтверждения регистрации по почте.

В функции handle() работы я ссылаюсь на статическую функцию другого класса (TicketController), которая генерирует PDF:

public function handle()
{
    $this->ticket = TicketController::createPdf($this->customer);

    Mail::to($this->customer->email)->send(new CustomerAccepted($this->customer, $this->ticket));
}

Если я запускаю это задание через драйвер sync, все работает нормально.Но с database я всегда получаю ошибку

class 'PDFlib' not found

Конечно, класс реализован в моем TicketController, и я также пытался реализовать его непосредственно в своем классе работы.

Я также несколько раз пытался перезапустить работника очереди, но всегда получал один и тот же результат при работе с database.

РЕДАКТИРОВАТЬ:

TicketController.php:

use App\Customer;
use PDFlib;

class TicketController extends Controller
{
    public function createPdf(Customer $customer) 
    {
        $p = new PDFlib();

        $p->set_option("errorpolicy=return");
        $p->set_option("stringformat=utf8");
        $p->set_option("searchpath={" . resource_path() . "assets/fonts" . "}");
        $p->set_option("spotcolorlookup=false");

        if ($p->begin_document(storage_path('app/xy.pdf'), "") == 0) {
            echo ("Error: " . $p->get_errmsg());
            exit(1);
        }
        // Loading template and filling with content

        $p->end_page_ext("");
        $p->end_document("");

        return storage_path('app/xy.pdf');
    }
}

EDIT # 2

Я добавил полную функцию PDFlib непосредственно к handle() задания, но все еще получаю ту же ошибку class 'PDFlib' not found.

EDIT # 3

Только что понял, что запуск драйвера database локально и прослушивание очередей с php artisan queue:listen работает отлично.

Я запускаю приложение на Laravel Forge и также database драйвер.Попытался настроить очередь с работником демона и без него, но ни один из них не работает.

...