在没有CLI终端的情况下从PHP中调用Laravel Artisan.

问题描述 投票:0回答:1

我想用一个程序(Freescout)作为Laravel程序. 它工作得很好, 除了我必须做一个cron作业:* * * * * php /var/userdata/web/.../website/helpdesk/artisan schedule:run >> /dev/null 2>&1

但我不能在终端机上运行, 不能使用任何CLI, 只是设置一个Cron来运行PHP脚本. (共享主机服务器)。

所以我创建了一个名为 artisan_schedule_runner.php。这就简单了。

Route::get('/foo', function () {
    Artisan::call('schedule:run >> /dev/null 2>&1');
    //
});

我应该如何扩展我的代码,让它工作?

先谢谢你!

php laravel artisan
1个回答
0
投票

看来我找到了解决办法,我的问题解决了。Artisan::call()在Laravel框架外的问题。

$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); 
$input = new Symfony\Component\Console\Input\ArrayInput(['command' => 'schedule:run']);
$output = new Symfony\Component\Console\Output\StreamOutput(fopen('output.log', 'a', false)); 
$status = $kernel->handle( $input, $output );

那就是运行事先定义好的时间表。

© www.soinside.com 2019 - 2024. All rights reserved.