laravel 怎麼實作crontab的編寫呢, 官網教學說要寫在 /app/Console/Kenel.php 裡的shedule函數中。 但是這樣程式碼很多不美觀。
#目前想法要點:
可以複製artisian 的檔案到 app/crontab(新目錄) 中。 重新命名一下作為新的腳本。
根據artisian裡面的程式碼做修改。 。 範例如下:
#!/usr/bin/env php <?php require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php'; $kernel = $app->make(Illuminate\Contracts\Console\Kernel::class); $status = $kernel->handle( $input = new Symfony\Component\Console\Input\ArgvInput, new Symfony\Component\Console\Output\ConsoleOutput ); $kernel->terminate($input, $status); exit($status);
其中,我的想法應該是可以把handle裡的東西改成自己要執行的函數。 但是,查了下handle函數參數是一個$request ,接下去就不明白怎麼實現了。有會的朋友望不吝賜教哈。
直接使用call方面 把你的邏輯放到匿名函數裡即可
$schedule->call(function () {