【Laravel】
artisanコマンドを自作して実行する方法
オリジナルのartisanコマンドを作成する
投稿日 2023/11/24 更新日 2023/11/24
こんにちは。IT業界歴4年目の「元木皇天」です。
今回はLaravelで、artisanコマンドを自作する方法について解説いたします。
環境
OS:MacOS Ventura 13.4
PHP:Ver 8.2
Laravel:Ver 9.52.16
参考文献
新規artisanコマンドを作成する
自作するartisanコマンドは「artisanコマンド」を使用して作成します。
以下の形式でartisanコマンドを実行してください(XXXXXには作成したいコマンドの処理を木さうするクラス名を入力してください)。
php artisan make:command XXXXX
実際に値を設定した場合の例
php artisan make:command SampleCommand
実行すると「app/Console/Commands/」パス配下にクラスが作成されます。
このクラスにartisanコマンドの処理内容とコマンド名を記載していきます。
コマンドの処理を書く
先ほど提示した例のコマンドで作成したクラスファイルを見ると以下のような内容になっていると思います(コメントは削除しています)。
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class SampleCommand extends Command{ protected $signature = 'command:name'; protected $description = 'Command description'; public function handle(){ return Command::SUCCESS; } }
それぞれの内容をざっくり説明すると以下のような感じです。
コード | 説明 |
---|---|
$signature | コマンドの名前。「php artisan make:command」の「make:command」の部分に当たる文字列を指定する。 |
$description | コマンドの説明。artisan help等でヘルプを出力した際に表示される内容。 |
handle() | artisanコマンド実行時に実行される処理。 |
実際にコードの内容を記載すると以下のような感じになります。
今回はログに「Sample」という文字を出力するartisanコマンドを作成します。
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class SampleCommand extends Command{ protected $signature = 'sample:cmd'; protected $description = 'サンプルコマンドです。'; public function handle(){ echo("sample\n"); return Command::SUCCESS; } }
これで自作のartisanコマンドは完成です。
実際本格的なコマンド等を作成する場合は、DBから値を取得したり外部のREST APIを叩いたりすると思うので、その場合は適宜処理を記載してください。
新規作成したartisanコマンドを実行する
最後に今回作成したコマンドを実行してみましょう。
php artisan sample:cmd
実行するとコンソールにsampleと文字が出力されることが確認できます。
まとめ
Laravelで自作のartisanコマンドを自作するには
1. php artisan make:commandを使用してコマンドのクラスファイルを作成。
2. 1で作成したファイルに処理を記載する
です。