现在回答这个问题为时已晚,但希望它能对其他人有所帮助。
如果您只想为一个控制器执行此操作,那么您最好使用控制器 _init() 方法,如下所示。
public function _init() {
if(!$this->getRequest()->isPost()){
//The request is not post. Do what you like.
}
}
如果你想为多个控制器做同样的事情,你可以像这样创建一个 frontController 插件。
class Application_Plugin_Request extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request){
if(!$request->$isPost()){
//The request is not post. Do what you like.
}
}
}
将此方法添加到您的 Bootstrap 类以激活插件。
protected function _initPlugins(){
$front = Zend_Controller_Front::getInstance();
$front->registerPlugin(new Application_Plugin_Request(), 17);
}