イントロダクションIntroduction
ArtisanはLaravelを構成しているコマンドラインインターフェイスの名前です。アプリケーション開発時に便利な多くのコマンドを提供しています。パワフルなSymfonyコンソール・コンポーネントで動いています。Artisan is the name of the command-line interface included with Laravel. It provides a number of helpful commands for your use while developing your application. It is driven by the powerful Symfony Console component.
使用法Usage
使用可能な全コマンドをリストするListing All Available Commands
使用可能な全コマンドリストを表示するには、list
コマンドを使用してください。To view a list of all available Artisan commands, you may use the list
command:
php artisan list
コマンドのヘルプスクリーンを表示するViewing The Help Screen For A Command
全てのコマンドは「ヘルプ」スクリーンが用意され、説明と使用できる引数・オプションを表示します。ヘルプスクリーンを表示するには、help
に続いてコマンド名を入力してください。Every command also includes a "help" screen which displays and describes the command's available arguments and options. To view a help screen, simply precede the name of the command with help
:
php artisan help migrate
設定環境を指定するSpecifying The Configuration Environment
コマンドを実行する設定環境を指定するには--env
スイッチを使用します。You may specify the configuration environment that should be used while running a command using the --env
switch:
php artisan migrate --env=local
現在のLaravelバージョンを表示するDisplaying Your Current Laravel Version
インストールしているLaravelのバージョンを確認するには、--version
オプションを指定します。You may also view the current version of your Laravel installation using the --version
option:
php artisan --version
CLI外からのコマンド呼び出しCalling Commands Outside Of CLI
時には、ArtisanコマンドをCLI外から実行したい場合もあるでしょう。例えば、HTTPルートからArtisanコマンドを起動したい時です。Artisan
ファサードを使用するだけです。Sometimes you may wish to execute an Artisan command outside of the CLI. For example, you may wish to fire an Artisan command from an HTTP route. Just use the Artisan
facade:
Route::get('/foo', function()
{
$exitCode = Artisan::call('command:name', ['--option' => 'foo']);
//
});
Artisanコマンドをキューに入れれば、キューワーカーにより、バックグラウンドで実行されます。You may even queue Artisan commands so they are processed in the background by your queue workers[/docs/master/queues]:
Route::get('/foo', function()
{
Artisan::queue('command:name', ['--option' => 'foo']);
//
});
ArtisanコマンドのスケジュールScheduling Artisan Commands
今まで開発者は、それぞれのコンソールコマンドをスケジュールするために、Cronエントリーを毎回作成してきました。しかし、これは悩みの種でした。コンソールスケジュールは、ソース管理下にありませんでしたし、Cronのエントリを追加するために、その都度SSHでサーバーにアクセスする必要がありました。人生をより簡単に過ごしましょう。サーバーに一つだけCronエントリーを追加するだけで、Laravelコマンドスケジューラーを使い、Laravel自身だけでコマンドスケジュールを流暢で記述的に定義することができます。In the past, developers have generated a Cron entry for each console command they wished to schedule. However, this is a headache. Your console schedule is no longer in source control, and you must SSH into your server to add the Cron entries. Let's make our lives easier. The Laravel command scheduler allows you to fluently and expressively define your command schedule within Laravel itself, and only a single Cron entry is needed on your server.
コマンドスケジュールは、app/Console/Kernel.php
ファイルに記述します。このクラスの中に、schedule
メソッドが見つかるでしょう。使用開始しやすいように、このメソッドの中に簡単な例を準備してあります。お好きなだけのジョブスケジュールをSchedule
オブジェクトに追加してください。次のCronエントリーだけ、サーバーに追加する必要があります。Your command schedule is stored in the app/Console/Kernel.php
file. Within this class you will see a schedule
method. To help you get started, a simple example is included with the method. You are free to add as many scheduled jobs as you wish to the Schedule
object. The only Cron entry you need to add to your server is this:
* * * * * php /path/to/artisan schedule:run 1>> /dev/null 2>&1
このCronエントリは、Laravelコマンドスケジューラーを毎分呼び出します。それにより、Laravelはスケジュールされているジョブを評価し、必要のあるジョブを実行します。これ以上簡単になりません!This Cron will call the Laravel command scheduler every minute. Then, Laravel evalutes your scheduled jobs and runs the jobs that are due. It couldn't be easier!
スケジュール例More Scheduling Examples
別のスケジュール例をご覧ください。Let's look at a few more scheduling examples:
クロージャーをスケジュールするScheduling Closures
$schedule->call(function()
{
// タスクを行う…
})->hourly();
端末コマンドをスケジュールするScheduling Terminal Commands
$schedule->exec('composer self-update')->daily();
Cronの記述法で指定するManual Cron Expression
$schedule->command('foo')->cron('* * * * *');
一定時間で繰り返すFrequent Jobs
$schedule->command('foo')->everyFiveMinutes();
$schedule->command('foo')->everyTenMinutes();
$schedule->command('foo')->everyThirtyMinutes();
毎日行うジョブDaily Jobs
$schedule->command('foo')->daily();
24時間制で時間を指定し、毎日行うジョブDaily Jobs At A Specific Time (24 Hour Time)
$schedule->command('foo')->dailyAt('15:00');
一日に2回行うジョブTwice Daily Jobs
$schedule->command('foo')->twiceDaily();
ウィークデーに行うジョブJob That Runs Every Weekday
$schedule->command('foo')->weekdays();
週毎に行うジョブWeekly Jobs
$schedule->command('foo')->weekly();
// 曜日(0から6)と時間を指定する週間スケジュール
$schedule->command('foo')->weeklyOn(1, '8:00');
月毎に行うジョブMonthly Jobs
$schedule->command('foo')->monthly();
ジョブを実行する環境を指定するLimit The Environment The Jobs Should Run In
$schedule->command('foo')->monthly()->environments('production');
アプリケーションがメンテナンスモードでも実行することを指定するIndicate The Job Should Run Even When Application Is In Maintenance Mode
$schedule->command('foo')->monthly()->evenInMaintenanceMode();
コールバックの結果がTrueの時だけジョブを実行するOnly Allow Job To Run When Callback Is True
$schedule->command('foo')->monthly()->when(function()
{
return true;
});