Laravel 5.4.12 でカスタムコマンドを試す
- artisan でカスタムコマンド HelloCommand を作る
- ファイルを編集: app/Console/Commands/HelloCommand.php
- ファイルを編集: app/Console/Kernel.php
- 引数無しで実行してみる
- 引数に Hoge と指定して実行してみる
- 登録したカスタムコマンドを確認してみる
- 参考
artisan
でカスタムコマンド HelloCommand
を作る
make:command
でカスタムコマンドHelloCommand
を作成。--command=
オプションで$signature
を指定して作成できる模様。
$ php artisan make:command HelloCommand --command="command:hello {message=Hello}" Console command created successfully.
ファイルを編集: app/Console/Commands/HelloCommand.php
- 新規に作成された
app/Console/Commands/HelloCommand.php
を編集。 $signature
に、コマンドの名称と引数を設定。--command=
オプションで指定済みの値が入っている。handle()
に処理を書く。
<?php namespace App\Console\Commands; use Illuminate\Console\Command; class HelloCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'command:hello {message=Hello}'; /** * The console command description. * * @var string */ protected $description = 'Command description'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { $funcs = ['line', 'info', 'comment', 'question', 'error']; foreach ($funcs as $func) { $this->$func($this->argument('message')); } } }
ファイルを編集: app/Console/Kernel.php
- 元からある
app/Console/Kernel.php
を編集して、HelloCommand
を登録。
<?php /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ Commands\HelloCommand::class ];
引数無しで実行してみる
php artisan command:hello
$ php artisan command:hello Hello Hello Hello Hello Hello
※Windows7のcmdで実行した場合、出力される文字に色は付かない。
引数に Hoge
と指定して実行してみる
php artisan command:hello Hoge
$ php artisan command:hello Hoge Hoge Hoge Hoge Hoge Hoge
登録したカスタムコマンドを確認してみる
php artisan list [<namespace>]
$ php artisan list command Laravel Framework 5.4.12 : : Available commands for the "command" namespace: command:hello Command description