Home > 【技術メモ】移行の時などで使うArtisanコマンドを自作してみる

【技術メモ】移行の時などで使うArtisanコマンドを自作してみる

【技術メモ】移行の時などで使うArtisanコマンドを自作してみる

Wed Mar 13 2019

Artisanコマンドを自作する

Laravelを構成している CLI (Command-Line Interface)である Artisanの話。今回は App\Console下で、独自のArtisanコマンドを自作する。シグネチャやコマンドの詳細を設定した上で、 handle() メソッドで実際にコマンドが叩かれた時に実行する処理を実装する。

https://laravel.com/docs/5.4/artisan

# コマンド一覧を確認できる
php artisan list

最終的には「一発叩けば」を実現

自作コマンドを定義するクラスで、シグネチャを指定して実行することができる状態を目指す。

# 自身で決めたシグネチャを指定して実行する
php artisan command:<シグネチャ>

自作コマンドを定義する

基本的にはシンプル。 protected $title にシグネチャを、 protected $description に詳細を入れる。 fire() メソッドにはコマンド発火時に何をするか処理を入れる。 getArgument() メソッドを使うとコマンドに引数を持つことが可能、 array('example', InputArgument::REQUIRED, 'An example argument.') を初期値として持っている。

<?php
namespace App\Console\Commands;

class <自作コマンドを定義するクラス> extends Command
{
    protected $signature = '<シグネチャ>';

    protected $description = '<コマンドの詳細>';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        //
    }
}

使用するための準備

app/Console/Kernel.phpで上記で作った自作コマンドのクラスを定義。気軽にArtisanコマンドを自作、実行することができるようになった。

<?php
namespace App\Console;

class Kernel extends ConsoleKernel
{
    protected $commands = [
        // 適宜追加する
        <コマンドを定義するクラス>::class,
    ];
}

コメントを残す