【发布时间】:2017-12-07 15:58:26
【问题描述】:
我现在想从 ZF2 升级到 ZF3,但在我的 PhpRenderer 中使用 URL 参数时遇到以下问题。
在 ZF2 中,我使用HelperPluginManager 得到Application,然后是MvcEvent,最后是routeMatch:
$routeMatch = $this
->getHelperPluginManager()
->getServiceLocator()
->get('Application')
->getMvcEvent()
->getRouteMatch();
$parameterAction = $routeMatch->getParam('action');
在 ZF3 中,使用 getServiceLocator() 时会出现弃用警告(这是有道理的,因为它只返回来自 ServiceManager 的 creationContext)。我想找到一种不触发警告的方法。
将Application 配置为工厂使用类(使用\Zend\Mvc\Service\ApplicationFactory::class)也不起作用,因为:
Zend\View\HelperPluginManager 只能创建 Zend\View\Helper\HelperInterface 和/或可调用对象的实例。
有什么方法可以在我的模板中获取 Application 上下文(或者更好的是 URL 的参数)?
【问题讨论】:
-
最好的方法可能是获取控制器中的参数并将其分配给视图。尽可能将您的逻辑排除在视图/模板之外。
标签: php zend-framework zend-framework3