(1) 新建一個command類,並在command類里面寫相應的執行函數
其中變量act就是指函數名,handle里面會先判斷該函數是不是存在,如果存在就執行,如果不存在就提示函數不存在
class UploadTeachingMaterials extends Command { protected $signature = 'uploadMaterials {act} {--folder=}'; protected $description = '上傳教材'; /** * 執行控制台命令 */ public function handle() { $method = $this->argument('act'); if (method_exists($this, $method)) { $this->$method(); echo "執行完成\n"; } else { echo "${method} is not exists\n"; } }
public function test()
{
xxxxxxx;
}
}
應先填寫類的 signature
和 description
屬性,這會在使用 list
命令的時候顯示出來。執行命令時會調用 handle
方法,你可以在這個方法中放置命令邏輯。
到相應的目錄下:比如你的laravel項目名叫test,那你就應該在test/目錄下執行
php artisan list
(2)在kernel.php中注冊該類
class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ Commands\TeachingMaterials\UploadTeachingMaterials::class, ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { } }
(3)執行該command命令
php artisan uploadMaterials 方法名 --folder=變量名
注意:
在執行command的命令的時候,為了對用戶更友好,要有輸出結果和提示,同時要進行錯誤處理,將異常和錯誤,或者其他有用的信息放到日志中。