我正在为项目使用zend模块化结构。我有以下目录结构
application/
modules/
default/
controllers/
IndexController.php
FooController.php
models/
views/
scripts/
index/
foo/
helpers/
filters/
blog/
controllers/
IndexController.php
models/
views/
scripts/
index/
helpers/
filters/
news/
controllers/
IndexController.php
ListController.php
models/
views/
scripts/
index/
list/
helpers/
filters/
我想创建一个公共控制器类,我将在所有模块的控制器中扩展它
例如,我想创建一个类如下
class My_Common extends Zend_Controller_Action
{
public function init()
{
}
}
在所有模块的控制器中,我不想像
那样扩展它 class News_IndexController extends My_Common
{
public function init()
{
}
}
我怎么能做到这一点。请帮忙 。我尝试在默认控制器中创建它,但它不起作用。
答案 0 :(得分:1)
您可以通过向库文件夹添加my的命名空间来轻松实现此目的。如果您考虑使用zend库,文件夹结构将如下所示:
the_common_folder_structure/ .../ library/ zend/ myNamespace/ Controller/ Common.php
然后在你的模块中扩展MyNamespace_Controller_Common。
答案 1 :(得分:0)
我这样做的方法是在库目录中添加一个“My”文件夹,然后复制Zends类结构,例如:
创建文件
library / My / Controller / Action.php,类名为:My_Controller_Action
确保在application.ini文件中包含:autoloaderNamespaces.my =“My_”,其中包括自动加载器的My目录。
然后,您应该可以从任何模块控制器扩展My_Controller_Action。