Lang x Lang

Artisan Console

Table of Contents

Introduction

Artisan は、Laravel に含まれる command ラインインターフェースです。 Artisan は、artisanscript としてあなたの application の root に存在し、アプリを構築する際に役立つ多くの便利なコマンドを提供します。 すべての利用可能な Artisan コマンドのリストを表示するには、list command を使用することができます。

php artisan list

すべての command には、コマンドの利用可能な引数と options を表示し説明する "help" 画面も含まれています。help 画面を view するには、help をもとの command の前に付けます。

php artisan help migrate

Laravel Sail

あなたがローカル開発 environment としてLaravel Sail を使用している場合、Artisan コマンドを呼び出すために sail command ラインを使用するように覚えておいてください。Sail は、あなたのアプリケーションの Docker コンテナ内で Artisan コマンドを実行します:

./vendor/bin/sail artisan list

Tinker (REPL)

Laravel Tinker は、PsySH パッケージを利用した、 Laravel フレームワークの強力な REPL です。

Installation

すべての Laravel アプリケーションは、 default で Tinker を含んでいます。 しかし、以前に application から削除した場合は、 Composer を使用して Tinker をインストールすることができます。

composer require laravel/tinker

NOTE

あなたの Laravel アプリケーションとのやり取り時にホットリロード、複数行の code 編集、オートコンプリートをお求めですか? Tinkerwell をチェックしてみてください!

Usage

Tinker を使用すると、Laravel application 全体と command ライン上でやり取りすることができます。これには Eloquent models, jobs, events などが含まれます。Tinker の environment に入るには、tinker Artisan command を実行します:

php artisan tinker

vendor:publishの command を使用して、Tinker の設定ファイルを publish することができます。

php artisan vendor:publish --provider="Laravel\Tinker\TinkerServiceProvider"

WARNING

dispatch helper 関数と Dispatchable class の dispatch method は、 job を queue に配置するために garbage collection に依存しています。したがって、tinker を使用するときは、 Bus::dispatch または Queue::push を用いて jobs を dispatch するべきです。

Command の許可リスト

Tinker は、シェル内で実行を許可されている Artisan コマンドを判断するために、"allow"リストを使用します。 default では、clear-compileddownenvinspiremigrateoptimizeupコマンドを実行できます。より多くのコマンドを許可したい場合は、tinker.php設定ファイルのcommands array に追加することができます。

'commands' => [
    // App\Console\Commands\ExampleCommand::class,
],

エイリアス化すべきでないクラス

通常、Tinker は Tinker でそれらと対話することにより classes を自動的に aliases します。しかし、一部の classes をエイリアスにしたくない場合があります。これは、tinker.php設定ファイルのdont_alias array に classes をリスト化することで実現できます:

'dont_alias' => [
    App\Models\User::class,
],

Writing Commands

Artisan に付属のコマンドに加えて、自分自身で build する独自の custom コマンドを作成することができます。コマンドは通常app/Console/Commandsディレクトリに保存されますが、あなたのコマンドが Composer によってロードできる限り、自由に自分の storage 場所を選択することも可能です。

コマンドの生成

新しい command を作成するには、make:command Artisan command を使用することができます。この command は、app/Console/Commandsディレクトリに新しい command class を作成します。このディレクトリがあなたの application に存在しない場合でも心配しないでください - make:command Artisan command を初めて実行した時に作成されます。

php artisan make:command SendEmails

Command 構造

あなたの class を生成した後、signatureおよびdescriptionプロパティに対して適切な values を定義する必要があります。これらのプロパティは、list画面であなたの command を表示する際に使用されます。signatureプロパティを使用すると、あなたの command の input 期待値を定義することもできます。あなたの command が実行されると、handle method が呼び出されます。この method にあなたの command のロジックを配置することもできます。

例の command を見てみましょう。注目すべき点は、私たちが必要な依存関係をコマンドのhandle method を介して request することができるという点です。このメソッドの signature に型ヒントがあるすべての依存関係は、 Laravel のservice containerによって自動的に注入されます。

<?php

namespace App\Console\Commands;

use App\Models\User;
use App\Support\DripEmailer;
use Illuminate\Console\Command;

class SendEmails extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'mail:send {user}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Send a marketing email to a user';

    /**
     * Execute the console command.
     */
    public function handle(DripEmailer $drip): void
    {
        $drip->send(User::find($this->argument('user')));
    }
}

NOTE

より大きな code の再利用のためには、あなたの console コマンドを軽量に保ち、それらがそのタスクを達成するために application services に委ねることが良い実践です。上記の例では、私たちは E メールの送信という"heavy lifting"を行うための service class を注入することに注意してください。

クロージャコマンド

Closure ベースのコマンドは、 console コマンドをクラスとして定義する代わりの選択肢を提供します。 route クロージャがコントローラーの代わりの選択肢であるのと同じように、 command クロージャを command クラスの代わりの選択肢と考えてください。

routes/console.php ファイルは HTTP routes を定義していませんが、 console ベースのエントリーポイント( routes )をあなたの application に定義します。このファイル内で、Artisan::command method を使用して、全てのクロージャベースの console コマンドを定義することができます。command method は二つの引数を受け取ります: command signature とコマンドの引数と options を受け取るクロージャ:

Artisan::command('mail:send {user}', function (string $user) {
    $this->info("Sending email to: {$user}!");
});

クロージャは基礎となる command インスタンスにバインドされているため、通常、フルの command class でアクセスできるすべてのヘルパーメソッドに完全にアクセスできます。

依存関係のタイプヒンティング

あなたのコマンドの引数や options を受け取るだけでなく、 command クロージャは、service containerから解決したい追加の依存関係を型指定することもできます:

use App\Models\User;
use App\Support\DripEmailer;

Artisan::command('mail:send {user}', function (DripEmailer $drip, string $user) {
    $drip->send(User::find($user));
});

クロージャー Command 説明

クロージャベースの command を定義する際に、purposeの method を使用して command に説明を追加することができます。この説明は、php artisan listphp artisan helpのコマンドを実行したときに表示されます。

Artisan::command('mail:send {user}', function (string $user) {
    // ...
})->purpose('Send a marketing email to a user');

分離可能なコマンド

WARNING

この feature を利用するために、あなたの application は、memcachedredisdynamodbdatabasefile、またはarrayの cache driver を、あなたのアプリケーションの default cache driver として使用する必要があります。さらに、すべてのサーバーは同じ中央の cache サーバーと通信している必要があります。

時には、一度に command が一つだけ実行されるように保証したいと思うかもしれません。これを達成するためには、Illuminate\Contracts\Console\Isolatable インターフェースをあなたの command class に実装することができます:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Contracts\Console\Isolatable;

class SendEmails extends Command implements Isolatable
{
    // ...
}

Isolatableとマークされた command が存在するとき、 Laravel は自動的に--isolatedオプションをその command に追加します。そのオプションで command が呼び出されると、 Laravel はその command の他のインスタンスがすでに実行されていないことを保証します。 Laravel はアプリケーションの default cache driver を使用してアトミックロックを取得しようとすることによってこれを実現します。その command の他のインスタンスが実行中である場合、 command は実行されません。しかし、 command は成功した終了 status code で依然として終了します。

php artisan mail:send 1 --isolated

もし実行できなかった場合に command が返すべき status code を指定したい場合は、isolatedオプションを通じて必要な status code を提供することができます:

php artisan mail:send 1 --isolated=12

ロック ID

default では、Laravel は command の名前を使用して、application の cache でアトミックロックを取得するために使用される stringkey を生成します。ただし、isolatableId method を Artisan commandclass に定義することで、この key をカスタマイズし、command の引数や options を key に統合することができます:

/**
 * Get the isolatable ID for the command.
 */
public function isolatableId(): string
{
    return $this->argument('user');
}

ロックの有効期限

default では、分離ロックは command が終了した後に期限切れになります。または、 command が中断されて終了できない場合、ロックは 1 時間後に期限切れになります。ただし、isolationLockExpiresAt method を command に定義することで、ロックの有効期限を調整することができます:

use DateTimeInterface;
use DateInterval;

/**
 * Determine when an isolation lock expires for the command.
 */
public function isolationLockExpiresAt(): DateTimeInterface|DateInterval
{
    return now()->addMinutes(5);
}

Defining Input Expectations

consolecommand を書くとき、一般的には user からの input を引数や options を通じて収集します。Laravel は、あなたの command 上の signature プロパティを使用して、user から期待する input を定義することを非常に便利にしています。 signature プロパティを使用すると、名前、引数、および command の options を単一の、表現豊かな routes のような構文で定義することができます。

Arguments

すべての user が提供する引数と options は中括弧で囲まれています。以下の例では、 command は一つの required 引数を定義しています:user:

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'mail:send {user}';

また、引数をオプショナルにするか、引数の default values を定義することもできます:

// Optional argument...
'mail:send {user?}'

// Optional argument with default value...
'mail:send {user=foo}'

Options

オプションは、引数と同様に、 user input の別の形態です。 Options は、 command ラインを介して提供されるときにはハイフン二つ(--)でプレフィックスされます。 Options には二つのタイプがあります: value を受け取るものと、そうでないものです。 value を受け取らない options は、 boolean "switch"として機能します。この type のオプションの例を見てみましょう:

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'mail:send {user} {--queue}';

この例では、--queueスイッチは Artisan command を呼び出す際に指定できます。--queueスイッチが渡された場合、オプションの value はtrueになります。それ以外の場合、 value はfalseになります。

php artisan mail:send 1 --queue

Options と Values

次に、 value を期待するオプションを見てみましょう。もし user がオプションのために value を指定しなければならない場合、オプション名の後ろに=記号を付けるべきです。

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'mail:send {user} {--queue=}';

この例では、 user は次のようにオプションに value を渡すことができます。もし command を呼び出す際にオプションが指定されていない場合、その value はnullになります:

php artisan mail:send 1 --queue=default

オプション名の後に default value を指定することで、 options に default values を割り当てることができます。もし user がオプションの value を渡さなかった場合、 default value が使用されます。

'mail:send {user} {--queue=default}'

オプションのショートカット

オプションを定義する際にショートカットを割り当てるには、オプション名の前にそれを指定し、ショートカットと完全なオプション名を分けるために | 文字を delimiter として使用することができます:

'mail:send {user} {--Q|queue}'

ターミナルで command を呼び出すとき、オプションのショートカットは single ハイフンで始まるべきであり、オプションの value を指定するときには = 文字を含めるべきではありません。

php artisan mail:send 1 -Qdefault

Input 配列

複数の input values を期待して引数や options を定義したい場合は、*文字を使用することができます。まず、そのような引数を指定する例を見てみましょう:

'mail:send {user*}'

この method を呼び出すとき、user引数は command ラインの順序で渡すことができます。例えば、次の command は userの value を 1 および 2 を values として持つ array に設定します:

php artisan mail:send 1 2

この * 文字は、引数のインスタンスをゼロ回以上許可するためのオプション引数定義と組み合わせることができます:

'mail:send {user?*}'

オプション配列

オプションを定義する際に、複数の input values を想定している場合、各オプションの value は、オプション名で始まるように command に渡されるべきです:

'mail:send {--id=*}'

そのような command は、複数の--id引数を渡すことで呼び出すことができます:

php artisan mail:send --id=1 --id=2

Input 説明

input 引数や options に説明文を割り当てることができます。これは、引数の名前と説明文をコロンを使用して区切ることにより行います。 command を定義するために少し余裕が必要な場合は、定義を複数の行に分けて自由に記述してください:

/**
 * The name and signature of the console command.
 *
 * @var string
 */
protected $signature = 'mail:send
                        {user : The ID of the user}
                        {--queue : Whether the job should be queued}';

不足している Input の促し

あなたの command に required の引数が含まれている場合、それらが提供されていないときに user は error メッセージを受け取ります。または、あなたはPromptsForMissingInputインターフェースを実装することで、 required の引数が欠けているときに user に自動的に prompt するようにあなたの command を設定することもできます:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Contracts\Console\PromptsForMissingInput;

class SendEmails extends Command implements PromptsForMissingInput
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'mail:send {user}';

    // ...
}

もし Laravel が user から必須の引数を集める必要がある場合、それは自動的に引数の名前または説明を使って質問を巧みに表現し、user に引数を尋ねます。もし必須の引数を集めるための質問をカスタマイズしたい場合は、promptForMissingArgumentsUsing method を実装し、引数名によって keyarray した質問の array を返すことができます:

/**
 * Prompt for missing input arguments using the returned questions.
 *
 * @return array<string, string>
 */
protected function promptForMissingArgumentsUsing(): array
{
    return [
        'user' => 'Which user ID should receive the mail?',
    ];
}

質問とプレースホルダーを含むタプルを使用して、プレースホルダーテキストも提供できます:

return [
    'user' => ['Which user ID should receive the mail?', 'E.g. 123'],
];

prompt に完全にコントロールしたい場合は、 user に prompt を提供し、その答えを返すクロージャを提供することができます:

use App\Models\User;
use function Laravel\Prompts\search;

// ...

return [
    'user' => fn () => search(
        label: 'Search for a user:',
        placeholder: 'E.g. Taylor Otwell',
        options: fn ($value) => strlen($value) > 0
            ? User::where('name', 'like', "%{$value}%")->pluck('name', 'id')->all()
            : []
    ),
];

NOTE

包括的なLaravel Promptsのドキュメンテーションには、利用可能なプロンプトとその使用方法に関する追加情報が含まれています。

あなたが user に select したり、optionsを入力するように prompt する場合、コマンドのhandle method にプロンプトを含めることができます。しかし、欠けている引数に対して自動的にプロンプトされたときにのみ user に prompt したい場合は、afterPromptingForMissingArguments method を実装することができます:

use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use function Laravel\Prompts\confirm;

// ...

/**
 * Perform actions after the user was prompted for missing arguments.
 */
protected function afterPromptingForMissingArguments(InputInterface $input, OutputInterface $output): void
{
    $input->setOption('queue', confirm(
        label: 'Would you like to queue the mail?',
        default: $this->option('queue')
    ));
}

Command I/O

Input の取得

あなたの command が実行中の間、おそらくあなたの command によって受け入れられる values や options にアクセスする必要があります。そのためには、argumentoptionメソッドを使用できます。もし引数やオプションが存在しない場合、nullが返されます。

/**
 * Execute the console command.
 */
public function handle(): void
{
    $userId = $this->argument('user');
}

すべての引数をarrayとして取得する必要がある場合は、argumentsの method を呼び出します:

$arguments = $this->arguments();

Options は、option method を使用して引数を取得するのと同じくらい簡単に retrieved することができます。すべての options を array として取得するには、options method を呼び出します:

// Retrieve a specific option...
$queueName = $this->option('queue');

// Retrieve all options as an array...
$options = $this->options();

Input の促進

NOTE

Laravel promptは、command ライン application に美しく user フレンドリーなフォームを追加するための PHP パッケージであり、プレースホルダーテキストや検証を含むブラウザーのような特徴があります。

output を表示するだけでなく、command の実行中に user に input を提供するように求めることもできます。 ask method は指定された質問で user に prompt を送り、その input を受け入れてから、user の input をあなたの command に戻します。

/**
 * Execute the console command.
 */
public function handle(): void
{
    $name = $this->ask('What is your name?');

    // ...
}

ask method は、option の 2 つ目の引数も受け入れます。これは、user 入力が提供されない場合に返されるべき default value を指定します:

$name = $this->ask('What is your name?', 'Taylor');

secret method はaskに似ていますが、user の input は彼らが console で type している間、彼らには見えません。この method は、 passwords のようなセンシティブな情報を尋ねる際に便利です。

$password = $this->secret('What is the password?');

確認を求める

user にシンプルな"yes or no"の確認を求める必要がある場合、confirm method を使用することができます。default では、この method は false を返します。しかし、user が prompt に対して y または yes と response すると、method は true を返します。

if ($this->confirm('Do you wish to continue?')) {
    // ...
}

必要であれば、 method の confirm を使用し、第二引数として true を渡すことで、 default で true を返すように確認 prompt を指定することができます:

if ($this->confirm('Do you wish to continue?', true)) {
    // ...
}

Auto-Completion

anticipate method は、可能な選択肢の自動補完を提供するために使用できます。 user は、自動補完のヒントに関係なく、任意の答えを提供することができます。

$name = $this->anticipate('What is your name?', ['Taylor', 'Dayle']);

あるいは、anticipate method の第二引数としてクロージャを渡すこともできます。このクロージャは、user が入力キャラクターを入力するたびに呼び出されます。クロージャは、これまでのユーザーの入力を含む string パラメーターを受け取り、オートコンプリートのための options の array を返すべきです:

$name = $this->anticipate('What is your address?', function (string $input) {
    // Return auto-completion options...
});

選択問題

質問をする際に user に事前に定義された選択肢を提供する必要がある場合、choice method を使うことができます。選択肢が選ばれなかった場合に返される default value の array インデックスを、第三引数として method に渡すことにより設定することができます。

$name = $this->choice(
    'What is your name?',
    ['Taylor', 'Dayle'],
    $defaultIndex
);

さらに、choice method は、有効な response を select するための試行回数の最大数を決定し、複数の選択が許可されるかどうかを決定するための任意の第 4 引数と第 5 引数を受け入れます:

$name = $this->choice(
    'What is your name?',
    ['Taylor', 'Dayle'],
    $defaultIndex,
    $maxAttempts = null,
    $allowMultipleSelections = false
);

Output の記述

line, info, comment, question, warn, そして error メソッドを使用して、 console に output を送信することができます。これらのメソッドは、それぞれの目的に応じて適切な ANSI 色を使用します。例えば、一般的な情報を user に表示しましょう。通常、info method は console 上で緑色のテキストとして表示されます。

/**
 * Execute the console command.
 */
public function handle(): void
{
    // ...

    $this->info('The command was successful!');
}

error メッセージを表示するには、error method を使用します。エラーメッセージのテキストは通常、赤色で表示されます。

$this->error('Something went wrong!');

普通の色付けされていないテキストを表示するために、line method を使用してもよいです:

$this->line('Display this on the screen');

空白行を表示するために、newLine method を使用してもよいです:

// Write a single blank line...
$this->newLine();

// Write three blank lines...
$this->newLine(3);

Tables

table method を使用すると、複数の行/列の data を正しくフォーマットするのが容易になります。必要なのは column の名前とテーブルの data を提供するだけで、 Laravel が自動的にテーブルの適切な幅と高さを計算してくれます:

use App\Models\User;

$this->table(
    ['Name', 'Email'],
    User::all(['name', 'email'])->toArray()
);

プログレスバー

長期間実行するタスクの場合、タスクがどの程度完了しているかを users に知らせるプ log レスバーを表示すると便利です。 withProgressBar method を使用すると、 Laravel はプ log レスバーを表示し、与えられたイテラブルな value を一つずつ処理するたびに進捗状況を進めます:

use App\Models\User;

$users = $this->withProgressBar(User::all(), function (User $user) {
    $this->performTask($user);
});

時には、プログレスバーがどのように進行するかについて、より手動でのコントロールが必要な場合もあります。まず、 process が反復する総ステップ数を定義します。その後、各アイテムを processing した後にプログレスバーを進行させます:

$users = App\Models\User::all();

$bar = $this->output->createProgressBar(count($users));

$bar->start();

foreach ($users as $user) {
    $this->performTask($user);

    $bar->advance();
}

$bar->finish();

NOTE

より高度な options については、Symfony Progress Bar component documentation をご覧ください。

Registering Commands

default では、 Laravel は自動的にapp/Console/Commandsディレクトリ内のすべての commands を登録します。しかし、 Laravel に対して、 Artisan の commands を検索するための他のディレクトリをスキャンするように指示することもできます。これは、application のbootstrap/app.phpファイル内のwithCommands method を使用して行います。

->withCommands([
    __DIR__.'/../app/Domain/Orders/Commands',
])

必要に応じて、コマンドの class 名を withCommands method に指定することで、手動で register コマンドも可能です。

use App\Domain\Orders\Commands\SendEmails;

->withCommands([
    SendEmails::class,
])

Artisan が起動すると、あなたの application 内の全てのコマンドはservice containerによって解決され、 Artisan に登録されます。

Programmatically Executing Commands

時々 CLI 以外で Artisan command を実行したい場合があります。たとえば、route や controller から Artisan command を実行したい場合があります。これを実行するために、Artisan facade のcall method を使用できます。call method は、第一引数としてコマンドの signature 名または class 名を受け入れ、第二引数として command パラメータの array を受け入れます。終了 code が返されます:

use Illuminate\Support\Facades\Artisan;

Route::post('/user/{user}/mail', function (string $user) {
    $exitCode = Artisan::call('mail:send', [
        'user' => $user, '--queue' => 'default'
    ]);

    // ...
});

あるいは、call method に Artisan command を string として全体を渡すこともできます:

Artisan::call('mail:send 1 --queue=default');

Array Values の渡し方

あなたの command が array を受け入れるオプションを定義している場合、そのオプションに values の array を渡すことができます:

use Illuminate\Support\Facades\Artisan;

Route::post('/mail', function () {
    $exitCode = Artisan::call('mail:send', [
        '--id' => [5, 13]
    ]);
});

Boolean Values の渡し方

オプションの value を指定する必要がある場合で、--force フラグのように string values を受け付けない場合、migrate:refresh command には、オプションの value としてtrueまたはfalseを渡すべきです:

$exitCode = Artisan::call('migrate:refresh', [
    '--force' => true,
]);

Artisan コマンドのキューイング

queueの method をArtisanの facade で使用すると、queue workersがバックグラウンドで処理するように queue Artisan コマンドさえキューに入れることができます。この method を使用する前に、 queue が設定されており、 queue リスナーが動作していることを確認してください。

use Illuminate\Support\Facades\Artisan;

Route::post('/user/{user}/mail', function (string $user) {
    Artisan::queue('mail:send', [
        'user' => $user, '--queue' => 'default'
    ]);

    // ...
});

onConnectiononQueuemethod を使用すると、 Artisan command が発行されるべき connection または queue を指定できます。

Artisan::queue('mail:send', [
    'user' => 1, '--queue' => 'default'
])->onConnection('redis')->onQueue('commands');

他のコマンドからコマンドを呼び出す

時々、既存の Artisan command から他のコマンドを呼び出したい場合があるかもしれません。それはcall method を使用して行うことができます。このcall method は、 command の名前と、 command の引数/ options の array を受け付けます:

/**
 * Execute the console command.
 */
public function handle(): void
{
    $this->call('mail:send', [
        'user' => 1, '--queue' => 'default'
    ]);

    // ...
}

もし他の console command を呼び出し、そのすべての output を抑制したい場合は、callSilently method を使用できます。 callSilently method は call method と同じ signature を持っています。

$this->callSilently('mail:send', [
    'user' => 1, '--queue' => 'default'
]);

Signal Handling

ご存知の通り、オペレーティングシステムは実行中の process にシグナルを送ることを可能にします。例えば、SIGTERMシグナルは、オペレーティングシステムがプ log ラムに終了を要求する方法です。あなたが Artisanconsole の commands で、シグナルを受信し、それらが発生したときにコードを実行したい場合は、trapmethod を使用することができます。

/**
 * Execute the console command.
 */
public function handle(): void
{
    $this->trap(SIGTERM, fn () => $this->shouldKeepRunning = false);

    while ($this->shouldKeepRunning) {
        // ...
    }
}

一度に複数のシグナルを監視するには、trap method にシグナルの array を提供することができます:

$this->trap([SIGTERM, SIGQUIT], function (int $signal) {
    $this->shouldKeepRunning = false;

    dump($signal); // SIGTERM / SIGQUIT
});

Stub Customization

Artisan コンソールの make コマンドは、コントローラー、 jobs 、 migrations 、テストなど、さまざまなクラスを作成するために使用されます。これらのクラスは、「stub」ファイルを使用して生成され、そのファイルには、あなたの input に基づいた values が埋め込まれています。しかし、 Artisan によって生成されたファイルに小さな変更を加えたい場合があるでしょう。このような場合、stub:publish command を使用して、一般的な stub をあなたの application に publish し、カスタマイズできるようにすることができます:

php artisan stub:publish

公開されたスタブは、 application の root 内のstubsディレクトリに配置されます。これらのスタブに加えた変更は、Artisan のmakeコマンドを使用して対応するクラスを生成する際に反映されます。

Events

Artisan は、コマンドを実行するときに 3 つの events を dispatches します:Illuminate\Console\Events\ArtisanStartingIlluminate\Console\Events\CommandStarting、そして Illuminate\Console\Events\CommandFinishedArtisanStarting event は、 Artisan が実行を開始した直後に dispatches されます。次に、CommandStarting event は、 command が実行される直前に dispatches されます。最後に、CommandFinished event は、 command が実行を終えた後に一度 dispatches されます。

当社サイトでは、Cookie を使用しています。各規約をご確認の上ご利用ください:
Cookie Policy, Privacy Policy および Terms of Use