我有class Plugin_Magazine extends Zend_Controller_Action
在某些观看中,我需要从中调用static function test()
。
我认为如下:
$class_name = 'Plugin_'.$plugin;
$class_name::test();
因此我有
可捕获的致命错误:参数1传递给 Zend_Controller_Action :: __ construct()必须是。的实例 Zend_Controller_Request_Abstract,没有给出
但是,如果我创建class Plugin_Magazine
w \ o 扩展,一切正常。
问题是:我可以以某种方式做我需要的或忘记继承吗?
答案 0 :(得分:1)
您需要将Request对象传递给Action类的构造函数
在某些时候,你这样做:
$pm = new Plugin_Magazine();
但是你需要传递请求对象:
$pm = new Plugin_Magazine($this->getRequest());
关于这个电话:
$class_name = 'Plugin_'.$plugin;
$class_name::test();
为什么在Action中需要静态函数?这似乎不对,如果它是一个Action中存在的可重用逻辑,它应该被移动到其他地方,以便更容易使用它,比如模型。