Zend模块之间的通信

时间:2012-05-21 12:52:42

标签: zend-framework

有没有办法在Zend Modules之间进行通信,如下所述?

我希望$ sVariable返回“bla”。但它给了我

Zend_Controller_Action_Helper_ActionStack Object.

在一个模块中调用:

$sVariable = $this->_helper->actionStack('login', 'index', 'user');
echo $sVariable;

在另一个模块中:

class User_IndexController extends Zend_Controller_Action
{
    public function loginAction()
    {
        return "bla";
    }
}

3 个答案:

答案 0 :(得分:0)

你在做什么不是一个好习惯,但如果你仍然想让它工作,那么回声而不是回归

class User_IndexController extends Zend_Controller_Action{
    public function loginAction(){
        echo "bla";
    }
}

答案 1 :(得分:0)

跨模块控制器进行通信通常不是最佳做法。这个变量/逻辑可以移动到模型中吗?自动加载器使模块间的模型变得非常简单。

答案 2 :(得分:0)

一个选项是使用Zend_Regsitry。在loginAction()中你可以这样做:

Zend_Registry::set('bla', $aUserData['sVariable']);

为了得到它,你可以做到。

$registry = Zend_Registry::getInstance();
echo ($registry['sVariable']);

但它很混乱。所以我将控制器动作中的内容移动到帮助器中。这解决了我的问题。