Laravel

Laravelのartisanコマンドを自作しよう!

みなさん、こんにちは。どんぶラッコです。

今日は皆さんに 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

コマンドを叩き、自分が設定したコマンド名と説明がリストに追加されているかを確認しましょう。


以上、コマンドの作り方でした!みなさんも試してみては?

参考: Laravel(和訳)の解説ページ

ABOUT ME
どんぶラッコ
ECコンサルタント、システムエンジニアを経て、quintet株式会社CTOに就任。普段はNuxt.jsやLaravelを使用しています。

\面白いと思ったら/

記事のシェア & Twitter のフォロー をお願いします!

@proglearn
RELATED POST

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です