为什么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插件?这是一个很好的举动吗?
答案 0 :(得分:0)
始终从路径中提取默认参数。这是因为ZF2鼓励人们进行大量的手动路由。这既是为了速度目的,也是为了SEO目的。
$this->params('paramname', 'defaultValueIfNotFound');
如果您需要来自请求的特定区域的参数,您也可以使用params-plugin本身执行此操作。但@Matsemann已经对此进行了大量解释
您可以扩展params插件,但是您应该使用第三个参数作为附加选项。但请记住,另一种方法更简洁,最终需要插件的工作量更少。没有switch
- 声明只是为了得到一个参数;)