Laravel 建立 Artisan 指令

需要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個批次執行

更多玩法視乎你自己的創意了