Params插件魔术方法功能

时间:2013-04-15 20:39:40

标签: zend-framework2

为什么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.

我如何扩展这样的默认params插件?这是一个很好的举动吗?

1 个答案:

答案 0 :(得分:0)

始终从路径中提取默认参数。这是因为ZF2鼓励人们进行大量的手动路由。这既是为了速度目的,也是为了SEO目的。

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

如果您需要来自请求的特定区域的参数,您也可以使用params-plugin本身执行此操作。但@Matsemann已经对此进行了大量解释

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