2017-05-19 6 views
0

LaravelでCLI用の簡単なコマンドを作成する方法はかなりわかりますが、これは引数を作成するためのものですが、オプションの作成方法に関する簡単なドキュメントは見つかりません。 CLI。Laravel Illuminateコンソールコマンドでの引数とオプション

ユーザーが引数の後にオプションを追加できるようにしたいと思います。 ですから、例えば:

PHP職人のcmd引数-a

PHPの職人cmdを引数-a -c -x私は下のクラスで、このような構造を実現するにはどうすればよい

更新コード 確かにいくつかの解決策があります。それは実際に簡単に終了しました。

class cmd extends Command 
{ 
    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'cmd {argument} 
          {--s : description} 
          {--x : description}'; 

    /** 
    * The console command description. 
    * 
    * @var string 
    */ 
    protected $description = 'description'; 

    /** 
    * Create a new command instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function handle() 
    { 

     $var = $this->argument('argument'); 
     $options = $this->options(); 

     new Main($var,$options); 
    } 
} 

答えて

1

は、このためにとりうる解決策がたくさんありますが、私はオプションの引数を追加することを好む、彼らは引数が存在したりすることができないことを意味?と確定の操作を行う存在する場合、プラス*この手段はより日焼けすることができ

class cmd extends Command 
{ 
    /** 
    * The name and signature of the console command. 
    * 
    * @var string 
    */ 
    protected $signature = 'cmd {argument} {-extra*?}'; 


    /** 
    * Create a new command instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     parent::__construct(); 
    } 

    /** 
    * Execute the console command. 
    * 
    * @return mixed 
    */ 
    public function handle() 
    { 

     $var = $this->argument('argument'); 
     if($this->argument('-extra')) { 
     //do things if -extra argument exists, it will be an array with the extra arguments value... 
     } 

     new Main($var); 
    } 
} 
1

最初からコマンドを作成するための完全なドキュメントセクションがあり、よく文書化されています。それを見てください。

https://laravel.com/docs/5.4/artisan

あなたは、すべてのlaravelのコンソールコマンドに建てにここを見ている例から学ぶ必要がある場合。

vendor/laravel/framework/src/Illuminate/Foundation/Console 
関連する問題