2017-06-23 2 views
0

Ich arbeite an einem Kuchen Shell-Skript. Wenn ich einige benannte Argumente verwende, zB:Zugriff auf CakePHP-Shell-Argumente?

--username=world 

wie kann ich den "username" param/value bekommen?

sieht Ihr Code wie folgt aus:

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; 
    } 

} 

Und was ist der Unterschied zwischen Argument und Option? Und wie kann ich diese Optionen in meinem Code lesen?

Die eine Sache, die funktioniert, ist, dass ich das Array $ this-> args lesen kann, aber das ist nicht benannt. Alles, was ich tun kann, ist die arg durch den Index erhalten, zB .: $ this-> args [0]

Ich bin mit Kuchen 2.9

Antwort

0

Argumente Positionswerte, Optionen Präfix Werte:

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

Also in Ihrem Fall username ist ein Positionargument, das an Position 0 nachgeschlagen wird, und method ist eine Präfix-Option, die überall auftreten kann.

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

In beiden Fällen wird der userA Wert wird in $this->args[0] verfügbar sein, und der methodX Wert wird in $this->params['method'] oder über $this->param('method') zur Verfügung.

Siehe auch