Способ вызвать функцию командной строки из контроллера в Laravel? - PullRequest
0 голосов
/ 10 ноября 2019

Я пытаюсь сделать эскиз в проекте Laravel, и я пробовал много других способов, но безуспешно - библиотеки, API-интерфейсы ... Проблема в том, что проект разрабатывается в Windows, а профессор нуждается в Windowsтакже.

До сих пор я экспериментировал с тем, чтобы интегрировать разные библиотеки (wkhtmltoimage, spatie / browsershot, mpdf и т. Д.), Но в большинстве случаев возникают проблемы с путем. Требуемая функция, которая мне нужна, очень хорошо работает в командной строке, и я подумал, что должен найти способ вызвать ее в контроллере.

Я пробовал с:

shell_execute($call); 
system($call);
exec($call);

// with $call = "{func_name} {path_to_input_file} {name_of_output_file}";
// Example: $call = "wkhtmltoimage C:\xampp\htdocs\app\public\test.html img.jpg"

Но безрезультатно. Функция генерирует изображение, которое я хочу сохранить в базе данных.

Есть ли другой способ позвонить в командную строку? Может быть, вызов SSH?

1 Ответ

1 голос
/ 10 ноября 2019

Вы можете выполнять Artisan команды напрямую через контроллер.

Посмотрите на этот пример из документации Laravel :

Route::get('/foo', function () {
    $exitCode = Artisan::call('email:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    //
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...