需要app/Console/Commands
目錄中建立檔案,方法類似Controllers
亦可用指令代碼
以下是個例子
php artisan make:command UpdateFileSize
artisan 會為你生成 app/Console/Commands/UpdateFileSize.php
你在這個php檔案,public function handle(){}
中的操作將在執行指令時運行。
你可留言到這文件中上方有
protected $signature = 'app:update-file-size';
你可自行設定任何名然後在指令輸入php artisan xxxxx
比如我把$signature
改成如下
protected $signature = 'update:file-size';
那麼我執行的指令就是
php artisan update:file-size
當然很多時候你都可以用Controllers來直接執行PHP,這個方法讓你不需要考慮畫面,直接執行 PHP 代碼。
案例
比如這個是我用到的
public function handle(): void{
Files::query()
->chunk(100, function ($files) {
foreach ($files as $file) {
$size = Storage::disk('app')->size('/' . $file->path);
$file->size = $size;
$file->save();
}
});
}
我突然想在自己的文件系統中記錄下每個文件的文件大小是多少,但我已經有很多文件了,所以用上面這句就可以每100為1個批次執行
更多玩法視乎你自己的創意了