在何处以及如何设置所有控制器中可用的变量值。我不会使用zend注册表,也不想扩展Zend_Controller_Action。还有另外一种方法吗?我只想要举例:
$a = "test";
并在索引控制器中转储它:
class IndexController extends Zend_Controller_Action { public function indexAction(){ var_dump($a); } }
答案 0 :(得分:1)
Global vars破坏了面向对象编程的目的......使用命名空间或自定义配置。
使用会话Zend_Session_Namespace,这里是documentation on how to Zend_Session_Namespace。
或者,您可以使用静态属性创建一些新类,并使用它的setter / getters来设置和检索值。
E.g。
class SomeClass
{
static $hello = 'world';
}
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
var_dump(SomeClass::$hello);
}
}
答案 1 :(得分:0)
您可以向请求对象添加变量:
$this->getRequest()->setParam('a', 'hello');
然后使用以下方法检索它:
$this->getRequest()->getParam('a);
但这不是最佳方式,因为您可能会意外地将参数覆盖为所需参数。