0

为什么params插件魔术函数默认转发路由?

为什么 zf 不能从下面的示例中的参数中获取函数?

public function __invoke($param = null,$type='Route', $default = null)
{
    if ($param === null) {
        return $this;
    }
    $type = 'from'.ucfirst($type); 
    // Need to check function exist, if not must throw some error
    return $this->$type($param, $default);
}

示例使用

$this->params('name','post');
$this->params('token','get');
$this->params('action'); // this will return from route like default one.

我怎样才能像这样扩展默认参数插件?这是一个好的举措吗?

4

1 回答 1

0

默认参数总是从路由中获取。这是因为 ZF2 鼓励人们进行大量手动路由。这既是出于速度目的,也是出于 SEO 目的。

$this->params('paramname', 'defaultValueIfNotFound');

在您需要来自请求的特定区域的参数的情况下,您也可以使用 params-plugin 本身来执行此操作。但这已经被@Matsemann大大解释了

您可以扩展 params 插件,但您应该使用第三个参数作为附加选项。但请记住,另一种方法更简洁,并且最终需要更少的插件工作。没有switch-statement只是为了得到一个参数;)

于 2013-04-15T21:08:03.823 回答