3

我似乎找不到一个简单的具体示例来说明如何在 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);
        }
    }

然后我尝试调用它:

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

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

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

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

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

Usage:
cake lot_web_service [-h] [-v] [-q]

我究竟做错了什么?

4

1 回答 1

5

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

public function getOptionParser() {
    $parser = parent::getOptionParser();
    //configure parser
    return $parser;
}

这可确保在调度调用之前设置选项和参数。此外,从它的外观来看,您想要addOption()的是addArgument().

于 2012-04-16T17:13:01.430 回答