php - ZF2 控制台路由无限参数

标签 php console routes zend-framework2

我有这样的路线:

'cronExec' => array(
    'options' => array(
        'route' => 'exec [<commands>]',
        'defaults' => array(
            'controller' => 'Cron\Controller\Commands',
            'action' => 'exec'
        )
    )
),

这会捕获:

  • execCmd
  • execCmd 命令名称此处

但我也想用无限数量的参数捕获第二个,例如:

  • execCmd 命令名称此处 --x=y --a=b --c=1
  • execCmd commandNameHere --param1=1 --param2=0

或者以任何其他方式允许我发送无限的、未知的命名参数到指定的命令,但仅当在它之前设置了 execCmd

最佳答案

'cronExec' => array(
    'type' => 'Catchall',
    'options' => array(
        'route' => 'exec',
        'defaults' => array(
            'controller' => 'Cron\Controller\Commands',
            'action' => 'exec'
        )
    )
),

更新1

或者您可以在单个参数内传递任何参数。

'cronExec' => array(
    'options' => array(
        'route' => 'exec [--params=]',
        'defaults' => array(
            'controller' => 'Cron\Controller\Commands',
            'action' => 'exec'
        )
    )
),

这样称呼

php public/index.php exec --params="--any --other --params"

并在 Controller 中使用 getopt 或其他解析 $this->params('params')

关于php - ZF2 控制台路由无限参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21159707/

相关文章:

azure - 通过另一个 Azure 虚拟网络直接连接到 Azure 虚拟网络中的资源

asp.net-mvc-2 - ASP.NET MVC : how to parse url string to get RouteData

c++ - 来自控制台应用程序的 OSX 主队列

symfony - Symfony 2 URL 结构中的可选区域性参数?

php - 如何在 ubuntu 18.04 上安装 pecl

php 管理 session session

java - 从 Windows 命令提示符中断 JAVA 程序

go - 无论如何在ansi控制台上打印斜体字体?

php - 使用 PHP 的动态网站

PHP 使用 proc_open 并捕获 'echo' 命令的标准输出