CakePHP 2 Shell Arguments帮助/示例

tom*_*ods 3 cakephp cakephp-2.0

我似乎无法找到一个关于如何在CakePHP 2 shell脚本上接收参数的简单具体示例.

    class TestShell extends AppShell {
        public function argumentTest(){
            $parser = parent::getOptionParser();
            $parser->addArgument('testArgument', array('short' => 't','help' => 'The test argument'));
            var_dump($this->params);
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后我试着打电话给它:

  • 控制台/蛋糕TestShell参数测试--t 45

  • 控制台/蛋糕TestShell参数测试-t 45

  • 控制台/蛋糕TestShell参数测试--testArgument 45

  • 控制台/蛋糕TestShell argumentTest -testArgument 45

以上所有我得到这个作为回应:

Usage:
cake lot_web_service [-h] [-v] [-q]
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

jer*_*ris 5

您应该在设置选项解析器时设置参数:

public function getOptionParser() {
    $parser = parent::getOptionParser();
    //configure parser
    return $parser;
}
Run Code Online (Sandbox Code Playgroud)

这可确保在分派调用之前设置选项和参数.此外,从它看起来,你想要addOption()而不是addArgument().