2012-04-16 6 views
3

CakePHP 2シェルスクリプトで引数を受け取る方法の簡単な具体例を見つけることができません。CakePHP 2シェル引数help/example

class TestShell extends AppShell { 
     public function argumentTest(){ 
      $parser = parent::getOptionParser(); 
      $parser->addArgument('testArgument', array('short' => 't','help' => 'The test argument')); 
      var_dump($this->params); 
     } 
    } 

私はそれを試してみて呼び出す:

  • コンソール/ケーキテストシェルargumentTestは45

  • コンソールを--t /ケーキテストシェルargumentTestは45

  • コンソールを-t /ケーキTestShell argumentTest - テストアーギュメント45

  • コンソール/ケーキテストシェルargumentTest -testArgument上記のすべてと45

私は応答としてこれを取得する:私が間違っているのは何

Usage: 
cake lot_web_service [-h] [-v] [-q] 

?オプションのパーサが設定されている場合

答えて

5

あなたは引数を設定する必要があります。

public function getOptionParser() { 
    $parser = parent::getOptionParser(); 
    //configure parser 
    return $parser; 
} 

これはオプションと引数は、呼び出しをディスパッチする前に設定されていることを保証します。また、見た目からは、addArgument()の代わりにaddOption()が必要です。

+1

ありがとうございました。このようになりました: ' public function getOptionParser(){ $ parser = parent :: getOptionParser(); $ parser-> addOption( 'testArgument'、array( 'short' => 't'、 'help' => 'テスト引数'));$ parser-> addOption return $ parser; } public function argumentTest(){ var_dump($ this-> params); } ' – tomwoods

+1

ありがとう、getOptionParserを追加してgetOptionParserメソッド内でaddOptionを呼び出したものが追加されました。これにより、$ this-> paramsプロパティでオプションを利用できるようになりました。 – tomwoods

+0

うん、それは右のように聞こえる! – jeremyharris

関連する問題