2015-10-16 44 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。如果你成功引導,你應該沒問題,並且能夠使用你的控制器。