みなさん、こんにちは。どんぶラッコです。
今日は皆さんに Laravel の artisanコマンド 作成方法について一緒に見ていこうと思います。
laravelを使っていると馴染みがある php artisan ...
というコマンドですが、このコマンドを自分でオリジナルのコマンドを作成することができます。
なので、「こんなコマンドがあったら便利なのになあ…」「社内の設計ルールに沿ったartisanコマンドが欲しいなあ…」という方は、自分で自由にコマンドを作ることができるわけです!便利ですね
僕の場合、Modelのリレーション変更やカラムの一括値変更など、破壊的なアップデートが入った場合の処理をコマンド化して登録してあったりします。
そんな便利なコマンドもまた、 aritsanコマンドを使って簡単に作ることができます!早速見ていきましょう!
artisan コマンドを作成する
まずは make:command
を使ってコマンド作成用クラスを作成します
php artisan make:command クラス名
すると、 app/Console/Commands
内にクラスが生成されます。
生成されたクラス内に設定や実際の処理を記述します。
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class SampleCommand extends Command
{
// コマンド名 ( php artisan [この部分])
protected $signature = 'sample:sample';
// 説明
protected $description = 'サンプル';
public function __construct()
{
parent::__construct();
}
// 処理の記述
public function handle()
{
// 実行させたい処理
}
}
$signature
, $description
でコマンド名とコマンドの説明文を記入し、 handle()
メソッド内で実行させたい処理を記述します。
$signature
については、引数をえたい場合は sample:sample {arg}
のように、波括弧で括ってあげることで取得することができます。
記述しおえたらコマンドを追加します。
app/Console/Kernel.php
の $commands
配列に、作成したクラスを追加します。
<?php
namespace App\Console;
class Kernel extends ConsoleKernel
{
protected $commands = [
Commands\SampleCommand::class, // 追加
];
// 以下略
}
これで完了です!
最後に
php artisan list
コマンドを叩き、自分が設定したコマンド名と説明がリストに追加されているかを確認しましょう。
以上、コマンドの作り方でした!みなさんも試してみては?