在 Zend Framework 2 中设置视图插件的最佳方法是啥?
Posted
技术标签:
【中文标题】在 Zend Framework 2 中设置视图插件的最佳方法是啥?【英文标题】:What is the best way to setup a view plugin in Zend Framework 2?在 Zend Framework 2 中设置视图插件的最佳方法是什么? 【发布时间】:2012-04-13 08:11:24 【问题描述】:我正在尝试设置一个视图插件来公开 Zend Framework 2 中的路由匹配。 插件是这样的:
class GetRouteMatch extends AbstractHelper
/**
* Route match returned by the router.
*
* @var RouteMatch.
*/
protected $routeMatch;
/**
* Set route match returned by the router.
*
* @param RouteMatch $routeMatch
* @return self
*/
public function setRouteMatch(RouteMatch $RouteMatch)
$this->routeMatch = $RouteMatch;
return $this;
public function __invoke($param)
return $this->routeMatch->getParam($param, false);
设置 RouteMatch 对象的最佳方法是什么? 我必须在模块引导程序或控制器中执行此操作?
目前我已经在控制器操作中以这种方式解决了
$renderer = $this->getLocator()->get('Zend\View\Renderer\phpRenderer');
$routeMatch = $renderer->plugin('routeMatch');
$routeMatch->setRouteMatch($this->getEvent()->getRouteMatch());
RouteMatch 对象是手动注入的。但我确信有更好的方法
【问题讨论】:
我认为这是一种优雅的方式.. 【参考方案1】:最好在你的模块类中初始化这样的代码。您可以在此处附加一个事件以注入路由匹配等依赖项。但是,路由匹配将很快可以注入。在服务定位器中设置路由匹配的工作正在进行中。这意味着您可以配置 DI,它将从服务定位器中提取路由匹配。那你就不用自己写这些东西了。
【讨论】:
以上是关于在 Zend Framework 2 中设置视图插件的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Zend Framework 2 中设置第一个应用程序
在 catch 块中设置对象属性时 PHPUnit 测试失败