概要
Laravel7以降からStubのカスタマイズを簡単に行える機能が追加されました。
makeコマンドで使用される元のひな形ファイルを簡単にカスタマイズできて便利なのでご紹介します。
追記: コマンドを自作したい場合
環境
- Laravel 7.5.1
モデルのひな形を生成するコマンド
$ php artisan make:model Post
app/Post.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
//
}
makeコマンドを実行するとこのようなファイルが生成されます。
このひな形の内容を変えたい場合は次のようにします。
スタブファイルの公開
Laravel7以降では stub:publish
コマンドが新たに追加されました。
$ php artisan stub:publish
Stubs published successfully.
実行すると次のファイル群が生成されます。
stubs/console.stub
stubs/controller.api.stub
stubs/controller.invokable.stub
stubs/controller.model.api.stub
stubs/controller.model.stub
stubs/controller.nested.api.stub
stubs/controller.nested.stub
stubs/controller.plain.stub
stubs/controller.stub
stubs/factory.stub
stubs/job.queued.stub
stubs/job.stub
stubs/middleware.stub
stubs/migration.create.stub
stubs/migration.stub
stubs/migration.update.stub
stubs/model.pivot.stub
stubs/model.stub
stubs/policy.plain.stub
stubs/policy.stub
stubs/request.stub
stubs/rule.stub
stubs/seeder.stub
stubs/test.stub
stubs/test.unit.stub
make:model のカスタマイズ
stubs/model.stub
ファイルを見ると次のようにスタブファイルが定義されています。
stubs/model.stub
<?php
namespace {{ namespace }};
use Illuminate\Database\Eloquent\Model;
class {{ class }} extends Model
{
//
}
このファイルを書き換えてあげると make:model
コマンドに反映されます。