2015-10-16 93 views
1

我正在使用ZF2模块,但我没有使用完整的ZF2框架堆栈。如何将URL参数放入ZF2控制器的“params”控制器插件?

我需要能够从URL字符串拉GET参数到我的控制器。

我创建了Controller,它扩展了ZF2的AbstractActionController。在阅读ZF2: Get url parameters in controller后,我用print $this->params('line');尝试打印$_GET['line']值,但没有显示出来。

总之,这应该是工作,但不会:

//ZF2 equivalents of print $_GET['line'] (either one should work) 
print $this->params('line'); 
print $this->getEvent()->getRouteMatch()->getParam('line'); 

我想这是由于缺乏机制来从$_GET填充params。我如何将ZF2机制的这一部分加入到我的代码中?

这是值得的麻烦?例如,如果我需要介绍路由,事件以及将整个ZF2框架纳入我的代码中,并且将我的应用程序重新接入此工作,那么至少在现在,我可能只需坚持$_GET方法。

+0

Zend Framework总是被称赞,因为它的模块化。但是,实际上人们喜欢使用完整的堆栈。这很好,我认为它是最好的之一。但你是少数应该证明模块化符合框架核心的例子之一。我很好奇这个问题的答案是什么。 – user228395

回答

2

我不知道这是否是太多的答案,但它可能至少有帮助的。所以,免责声明:我没有试过这个。

因此,您扩展了AbstractActionController,这很好,因为它充满了各种功能。 AbstractActionController实现了一个完整的接口列表,使控制器可以监听MvcEvents,使用服务定位器等。如果您没有为控制器提供ServiceLocator等,那么在扩展AbstractActionController时没有意义。改为使用DispatchableInterface!另外,请仔细阅读:http://framework.zend.com/manual/current/en/modules/zend.mvc.controllers.html

现在,如果您确实想使用AbstractActionController的功能,您将需要\ Zend \ Mvc软件包。它具有所有功能或开销 - 这些情况中的哪一种取决于您的应用程序。请注意,Zend MVC应用程序实际上非常高效,但如果您不打算重新使用这些组件,那么如果没有它们,实际上可能会更好。该手册实际上指出了如何引导Zend MVC:http://framework.zend.com/manual/current/en/modules/zend.mvc.intro.html#bootstrapping-an-application。如果你成功引导,你应该没问题,并且能够使用你的控制器。