【Laravel】artisanのstub:publishコマンドを解説

Laravel チートシート

Laravel 10.x以降のartisanの「stub:publish」コマンドを解説します。

Description

カスタマイズ可能なすべてのスタブ1をstubsディレクトリに出力します。

LaravelではArtisanコマンドを通じてコードの雛形(stub)を自由にカスタマイズできます。詳しくは Laravel公式ドキュメント日本語版)も参照してください。

  1. artisanコマンドで作成されるファイルのテンプレート ↩︎

Usage

php artisan stub:publish [--existing] [--force]

Arguments

オプションはありません。

Options

オプション省略形必須説明
existingstubs/以下にあるファイルのみ上書き出力
force既存のファイルを上書き

Example

no options

php artisan stub:publish
   INFO  Stubs published successfully.  
$ ls stubs/
cast.inbound.stub          controller.nested.api.stub            enum.stub                   mail.stub                   notification.stub    resource-collection.stub
cast.stub                  controller.nested.singleton.api.stub  event.stub                  markdown-mail.stub          observer.plain.stub  resource.stub
class.invokable.stub       controller.nested.singleton.stub      factory.stub                markdown-notification.stub  observer.stub        rule.stub
class.stub                 controller.nested.stub                job.queued.stub             middleware.stub             pest.stub            scope.stub
console.stub               controller.plain.stub                 job.stub                    migration.create.stub       pest.unit.stub       seeder.stub
controller.api.stub        controller.singleton.api.stub         listener.queued.stub        migration.stub              policy.plain.stub    test.stub
controller.invokable.stub  controller.singleton.stub             listener.stub               migration.update.stub       policy.stub          test.unit.stub
controller.model.api.stub  controller.stub                       listener.typed.queued.stub  model.pivot.stub            provider.stub        trait.stub
controller.model.stub      enum.backed.stub                      listener.typed.stub         model.stub                  request.stub         view-component.stub

existing

既にstubs以下にあるファイルのみをLaravelデフォルトのもので上書きします。

php artisan stub:publish --existing
   INFO  Stubs published successfully.  
$ ls stubs/
test.stub

$ cat stubs/test.stub åå
HOGE

$ php artisan stub:publish --existing

   INFO  Stubs published successfully.  

$ ls stubs
test.stub

$ cat stubs/test.stub 
<?php

namespace {{ namespace }};

use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;

class {{ class }} extends TestCase
{
    /**
     * A basic feature test example.
     */
    public function test_example(): void
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

Source

著者

Webエンジニア歴30年、フリーランスバックエンドエンジニア。

PHP歴約30年(Laravel 7年・FuelPHP 5年・CakePHP・自作FW)、
JavaScript歴約20年(React・Vue各4年)。
AWS(EC2 / CloudFront / RDS / API Gateway など)・
GCP(BigQuery)を使ったバックエンド開発を中心に、
複数の事業会社・受託案件でシステム設計から実装・運用まで担当しています。

PHPがバージョン4の時代から書いており、
Laravelが普及する前のフレームワーク乱立期も経験しています。
「昔はこう書いていたが今はこう」という変遷を肌で知っているエンジニアとして、
単なるコマンドの使い方だけでなく、なぜそうするのかの背景まで伝えることを意識して書いています。

このブログでは、実務で実際に詰まった箇所・調べたこと・気づいたことを
そのまま記事にしています。誰かの「詰まり」が解決するきっかけになれば幸いです。

千原 耕司をフォローする

役にたったと思ったら応援をお願いします m(._.)m

チートシート
スポンサーリンク
シェアする
千原 耕司をフォローする
タイトルとURLをコピーしました