我的网站结构是目前这样的:Zend Framework的扩展模块控制器
/cms/
/data/ - caches etc
/modules/
/public/ - aliases from site public folders
/website1
/images
/layouts, views, scripts, css etc
(no index.php because of the alias)
这工作得很好,我的系统看起来别名文件夹中运行应用程序。但是,我现在已经到了想要扩展其中一个模块控制器的地步。
理想的情况下我的结构将是:
/cms/
.. as above
/CLIENT_ID/
/modules
..extending/overriding scripts
然而,这就是问题所在:控制器被称为必须根据Zend的文件名结构(Module_IndexController等)被调用,因此延长了基类会成为:
Module_IndexController extends Module_IndexController
这显然不会很好地工作。我的想法是,它应该是:
CLIENTID_Module_IndexController extends Module_IndexController
但我坚持如何实现这个想法?我可以在前端控制器上添加控制器目录:addControllerDirectory,但我猜我需要在某处更改被调用的类名称?
然后我可以检查文件夹是否是一个目录,并运行重写类而不是基类。
任何想法?我愿意重建这些文件夹,但显然需要将媒体文件保存在公用文件夹中。