在Zend Framework中从变量创建类实例

时间:2011-12-01 11:22:16

标签: php oop zend-framework

我有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 扩展,一切正常。

问题是:我可以以某种方式做我需要的或忘记继承吗?

1 个答案:

答案 0 :(得分:1)

您需要将Request对象传递给Action类的构造函数

在某些时候,你这样做:

 $pm = new Plugin_Magazine();

但是你需要传递请求对象:

 $pm = new Plugin_Magazine($this->getRequest());

关于这个电话:

$class_name = 'Plugin_'.$plugin;
$class_name::test();

为什么在Action中需要静态函数?这似乎不对,如果它是一个Action中存在的可重用逻辑,它应该被移动到其他地方,以便更容易使用它,比如模型。