通过Zend中的应用程序访问控制器操作

时间:2012-04-25 10:09:35

标签: php zend-framework

我对Zend有点新鲜,我想在整个应用程序中自动使用控制器操作,我不清楚如何使用它,想到init()方法,动作助手,等

1 个答案:

答案 0 :(得分:0)

然后,而不是简单地创建控制器动作创建controllerAction Helper。在这里您可以找到更多相关信息

http://framework.zend.com/manual/en/zend.controller.actionhelpers.html

My_Helper_Magic extends Zend_Controller_Action_Helper_Abstract
{

public function preDispach()
{
     //code inside here will run for entire application automatically
}

}

在你的引导程序中

Zend_Controller_Action_HelperBroker::addHelper(new My_Helper_Magic());

回应评论。

这取决于你的'代码片段',如果你的代码片段不需要对模块,控制器,动作,基本url一无所知那么你可以使用Bootstrap init函数

喜欢

public function _initAlways()
{
//see how this function name is prefixed with _init hence it will be called by ZF //everytime. You can put your code fragment here 
//If your code fragment depends upon some stuff like baseurl then do action controller
// registration here instead 
 Zend_Controller_Action_HelperBroker::addHelper(new My_Helper_Magic());

}

回应评论

您可以在Zend_Registy中保存对象的任何实例,并在您喜欢的时候检索它

Inside Bootstrap.php

public function _initSetup()
{
$object = new My_Custom_Object();
Zend_Registry::set('my_custom_object',$object);
}

稍后在您的视图或控制器中执行

$myObject = Zend_Registry::get('my_custom_object');  //to access it