Laravel 5.0 Artisan開発

イントロダクション

アプリケーションで動作させる、追加のカスタムコマンドを構築することも可能です。app/Console/Commandsディレクトリーにカスタムコマンドを保存してください。しかし、composer.jsonで設定し、コマンドがオートロードされる限り、どこにでも好きな場所に置くことができます。

コマンドの構築

クラス生成

新しいコマンドを生成するには、Artisanコマンドのmake:consoleを使用し、開発を開始するために役立つ、コマンドのひな形を生成してください。

新コマンドクラスの生成

php artisan make:console FooCommand

上のコマンドは、app/Console/Commands/FooCommand.phpにクラスを生成します。

--commandオプションを付け、コマンドを生成すると、コマンド名を指定することができます。

php artisan make:console AssignUsers --command=users:assign

コマンドの記述

コマンドを生成したら、クラスのnamedescriptionプロパティーを埋めてください。listスクリーンであなたのコマンドを表示する時に表示されます。

fireメソッドはコマンドが実行される時に呼び出されます。このメソッドの中に、コマンドロジックを書いてください。

引数とオプション

getArgumentsgetOptionsメソッドでコマンドが受け取る引数とオプションを定義します。両者のメソッドはオプションを配列のリストで記述した、コマンドの配列をリターンします。

argumentsを定義する定義配列は以下のような形式です。

[$name, $mode, $description, $defaultValue]

引数modeInputArgument::REQUIREDInputArgument::OPTIONALのどちらかです。

optionsを定義する定義配列は以下のような形式です。

[$name, $shortcut, $mode, $description, $defaultValue]

オプションでは、引数modeInputOption:REQUIREDInputOption::OPTIONALInputOption::VALUE_IS_ARRAYInputOption::VALUE_NONEのどれかです。

VALUE_IS_ARRAYモードはコマンド実行時に複数回指定されるスイッチを表します。

InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY

これにより、以下のような指定が可能になります。

php artisan foo --option=bar --option=baz

VALUE_NONEオプションは「スイッチ」として指定されるオプションを表します。

php artisan foo --option

入力の取り込み

コマンド実行時、アプリケーションが受け取った引数やオプションの値にアクセスする必要があるのは明らかです。これを行うには、argumentoptionメソッドを使用します。

コマンド引数値の取得

$value = $this->argument('name');

全引数の取得

$arguments = $this->argument();

コマンドオプションの値を習得する

$value = $this->option('name');

全オプションの取得

$options = $this->option();

出力

コンソールに出力するには、infocommentquestionerrorメソッドを使います。その名前が表す目的で使用し、それぞれ適当なANSIカラーが表示に使われます。

お知らせをコンソールに出力

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

エラーメッセージをコンソールに出力

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

質問

入力を求めるためにaskconfirmメソッドも使用できます。

ユーザーからの入力

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

ユーザーからの秘密文字列の入力

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

ユーザーへの確認

if ($this->confirm('Do you wish to continue? [yes|no]'))
{
    //
}

また、confirmメソッドにはtruefalseのデフォルト値が指定できます。

$this->confirm($question, true);

他コマンドの呼び出し

場合により、コマンドの中から他のコマンドを呼び出したい場合もあります。callメソッドを使ってください。

$this->call('command:name', ['argument' => 'foo', '--option' => 'bar']);

コマンド登録

Artisanコマンドの登録

コマンドが完成後、使用するにはArtisanとして登録する必要があります。通常、app/Console/Kernel.phpファイルで行います。このファイルのcommandsプロパティに、コマンドのリストがあります。自作したコマンドを登録するには、このリストに追加するだけです。

protected $commands = [
    'App\Console\Commands\FooCommand'
];

Artisanが起動すると、このプロパティにリストされている全コマンドがサービスコンテナにより依存解決され、Artisanコマンドとして登録されます。

ドキュメント章別ページ

Artisan CLI

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる