Yii2: Как вы используете именованные параметры в командах консоли?

Как я могу написать консольную команду yii controller/action --param1=something --param2=anything и получить эти именованные параметры в действии?

Я узнал, что в документации действительно говорится, но вместо того, чтобы называть ее «именованными параметрами», как я ожидал, она называется параметрами: http://www.yiiframework.com/doc-2.0/guide-tutorial-console .html # создать команду-

Однако документы не совсем полны. Итак, вот пример:

  1. Вы добавляете параметры в качестве свойств в контроллер:
 class CustomerController extends Controller { public $param1; public $param2; ... 
  1. Вы добавляете метод options к контроллеру:
  public function options($actionID) { return array_merge(parent::options($actionID), ['param1', 'param2']); } 

$actionID должен быть указан, а parent::options($actionID) используется для включения любых существующих параметров.

  1. Теперь вы можете получить доступ к параметрам в своем действии с помощью $this->param1 и $this->param2 , например .:
  public function actionSomething() { doAnything($this->param1, $this->param2); } 

Вполне можно комбинировать неименованные и именованные параметры. Названные должны быть указаны последним.

Недостаток документов также заключается в том, что если вы укажете параметр без значения (например, --param1 вместо --param1=500 ), значение $this->param1 будет логическим. Если не указано вообще, значение будет NULL .