0
我有一個控制器的功能,我希望該功能根據一些隨機設置的cron作業執行。我想知道如何在Artisan Command中運行控制器功能。Laravel 5從Artisan命令運行控制器方法
我已經看到了這個鏈接:Laravel 5 - how to run a Controller method from an Artisan Command?
但對我來說似乎並不喜歡這樣做最安全/最好的方法。有沒有人做過?
我有一個控制器的功能,我希望該功能根據一些隨機設置的cron作業執行。我想知道如何在Artisan Command中運行控制器功能。Laravel 5從Artisan命令運行控制器方法
我已經看到了這個鏈接:Laravel 5 - how to run a Controller method from an Artisan Command?
但對我來說似乎並不喜歡這樣做最安全/最好的方法。有沒有人做過?
也許你可以通過app()創建控制器的實例並調用它的方法?
實施例: app()->make(\App\Http\Controllers\UserController::class)->someMethod();
BUT。這是不正確的方式。對我來說,正確的方法是把你方法的邏輯爲,從您的應用程序的註冊服務,並調用它無論是在控制器和您的命令:
class CronJobService
{
public function handle($something)
{
// Do stuff...
}
}
class UserController
{
public function runCronJobs(CronJobService $cronjob)
{
$cronjob->handle($something);
}
}
class MyRandomCommand
{
public function __construct(CronJobService $cronjob)
{
$this->cronjob = $cronjob;
}
public function handle()
{
$this->cronjob($something)
}
}
爲什麼你會希望把這個方法在你的控制器?你可以製作一個cronjob執行的控制檯命令? – Neat