ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

11_php:02_framework:01_laravel:16_laravel_command_line

16 Laravel コマンドラインアプリケーション

Commandクラス作成

  $ php artisan make:command sample/test
  
  $ ll app/Console/Commands/sample/test.php 
  -rw-r--r-- 1 matsui users 677 Jan 30 16:01 app/Console/Commands/sample/test.php

Commandのシグネチャ変更

app/Console/Commands/sample/test.php

protected $signature = 'command:name';
↓
protected $signature = 'command:test';

protected $description = 'Command description';
↓
protected $description = 'てすとコマンド';

Commandクラスをartisanコマンドとして登録

app/Console/Kernel.php

    protected $commands = [ 
        //  
    ];  
    
    ↓
    
    protected $commands = [ 
        Commands\sample\test::class  
    ];  

Command確認

$ php artisan
・
・
・
 command
  command:test   てすと
・
・
・

引数を指定する場合

必須引数

protected $signature = 'command:test {arg}';

任意引数

protected $signature = 'command:test {arg?}';

デフォルト値の指定

protected $signature = 'command:test {arg=argument}';

引数に説明を付ける場合

protected $signature = 'command:test {arg : 引数を指定}';

例:

$ php artisan command:test -h
Description:
  てすとコマンド

Usage:
  command:test <arg>

Arguments:
  arg                   引数を指定

引数実行時の取得

    public function handle()
    {
        $name = $this->argument("name");
        $this->info("Hello $name");
    }

オプションを指定する場合

オプション指定

protected $signature = 'command:test {--dry-run}';

値指定オプション

protected $signature = 'command:test {--dry-run=}';

デフォルト値オプション

protected $signature = 'command:test {--dry-run=1}';

オプションに説明を追加

protected $signature = 'command:test {--dry-run : 実行テスト}';

オプションにショートカット指定

protected $signature = 'command:test {--d|--dry-run : 実行テスト}';

例:

$ php artisan command:test -h
Description:
  てすとコマンド

Usage:
  command:test [options]

Options:
  -d, --dry-run         本番実行

オプション実行時の取得

    public function handle()
    {
        $dry_run = $this->option("dry-run");
        $this->info("Option $dry_run");
    }

コンソール出力

    public function handle()
    {
        $this->info('info');
        $this->line('line');
        $this->comment('comment');
        $this->question('question');
        $this->error('error');

        $this->table(
            ['名前', '年齢'],
            [
                ['Taro', 10],
                ['Laravel', 5],
            ]
        );
    }

artisanコマンドからartisanコマンドを呼び出す方法

$this->call

$this->call('command:called', ['--path' => 'call']);

Artisan::call

use \Artisan;


// 実行
Artisan::call('command:called', ['--path' => 'artisan']);
11_php/02_framework/01_laravel/16_laravel_command_line.txt · 最終更新: 2019/12/10 10:22 by matsui