【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と文字が出力されることが確認できます。

artisanコマンドの実行結果

まとめ

Laravelで自作のartisanコマンドを自作するには
1. php artisan make:commandを使用してコマンドのクラスファイルを作成。
2. 1で作成したファイルに処理を記載する です。

参考文献・おすすめ文献

Laravel Document - コマンド記述