2013-05-02 5 views
0

я в настоящее время пытается получить маршрут консоли работать со значениями по умолчаниюНеприятности со значениями по умолчанию консоль маршрутизации

мой маршрут curently настроен как:

'console' => array(
    'router' => array(
     'routes' => array(
      'fetch-rapportage' => array(
       'options' => array(
        'route' => 'rapportage --type= [--hid=]', 
        'defaults' => array(
         'controller' => 'ZetaRapportage\Controller\Test', 
         'action'  => 'generate', 
         'hid'   => false, 
        ) 
       ) 
      ) 
     ) 
    ) 
), 

Теперь, когда я запустить следующую команду

CRON rapportage --type виртуальный

результат приходит как и ожидалось

object(Zend\Stdlib\Parameters)#96 (1) { 
    ["storage":"ArrayObject":private]=> 
     array(8) { 
      [0] => string(10) "rapportage" 
      [1] => string(6) "--type" 
      [2] => string(7) "virtual" 
      ["type"] => string(7) "virtual" 
      ["rapportage"] => bool(true) 
      ["controller"] => string(30) "ZetaRapportage\Controller\Test" 
      ["action"] => string(8) "generate" 
      ["hid"] => bool(false) 
     } 
} 

Теперь, когда я добавить дополнительный флаг --hid результат не как ожидалось

Команда:

CRON rapportage --type виртуальный --hid 100

выход

object(Zend\Stdlib\Parameters)#96 (1) { 
    ["storage":"ArrayObject":private]=> 
     array(10) { 
      [0] => string(10) "rapportage" 
      [1] => string(6) "--type" 
      [2] => string(7) "virtual" 
      [3] => string(5) "--hid" 
      [4] => string(3) "100" 
      ["type"] => string(7) "virtual" 
      ["hid"] => bool(false) <-- expected value 100 
      ["rapportage"] => bool(true) 
      ["controller"] => string(30) "ZetaRapportage\Controller\Test" 
      ["action"] => string(8) "generate" 
     } 
} 

Так что я сейчас в «wait-whut !!!» - режиме и не могу понять, почему и как?!?!? Кто-то здесь, что может положить палец на проблеме

ответ

0

Если вы хотите патч, чтобы решить эту проблему для вы прямо сейчас, пока ждете выхода 2.2.0, используйте это (при условии, что вы используете 2.1.5 - последний выпуск):

diff --git a/library/Zend/Mvc/Router/Console/Simple.php b/library/Zend/Mvc/Router/Console/Simple.php 
index 4105dfb..7c925df 100644 
--- a/library/Zend/Mvc/Router/Console/Simple.php 
+++ b/library/Zend/Mvc/Router/Console/Simple.php 
@@ -797,7 +797,7 @@ class Simple implements RouteInterface 
      return null; // there are extraneous params that were not consumed 
     } 

-  return new RouteMatch(array_replace($matches, $this->defaults)); 
+  return new RouteMatch(array_replace($this->defaults, $matches)); 
    } 

    /** 
Смежные вопросы