2017-06-23 63 views
0

我正在做一個蛋糕shell腳本。當我使用一些命名參數,例如:如何訪問CakePHP Shell參數?

--username=world 

我怎樣才能得到「用戶名」參數/值?

我的代碼如下所示:

class InviteShell extends AppShell 
{ 
//... here are my methods. 

public function getOptionParser() 
    { 
     $parser = parent::getOptionParser(); 
     $parser->addArgument('username', array(
      'help' => 'Send E-Mail to which user?' 
     ))->addOption('method', array(
      'short' => 'm', 
      'help' => __('The specific method you want help on.') 
     ))->description(__('Lookup doc block comments for classes in CakePHP')); 
     return $parser; 
    } 

} 

,是什麼樣的說法和選項之間的區別?而且我怎樣才能在我的代碼中讀取這些選項?

工作的一件事是我可以讀取$ this-> args數組,但是這沒有命名。所有我能做的就是通過指數得到ARG,如:$這個 - > ARGS [0]

我使用的蛋糕2.9

回答

0

參數是位置值,選擇的前綴值:

shell_method argument1 argument2 --optionA=value --optionB=value 

所以在你的情況下,username是一個位置參數,將在位置0查找,而method是一個前綴選項,可以在任何地方佔用。

shell_method userA --method=methodX 
shell_method --method=methodX userA 

在兩種情況下userA值將在$this->args[0]methodX值將$this->params['method']或經由$this->param('method')可用。

又見