Php Zend框架(1.7.5):如何更改控制器目录

Php Zend框架(1.7.5):如何更改控制器目录,php,zend-framework,Php,Zend Framework,使用Zend Framework,我希望使用存储在非默认目录中的控制器 我试图实现的是,如果请求的路径以admin/controllers/admin开头,则使用layout/admin和views/admin等 我将如何以一种相当优雅的方式实现这一点 $front = Zend_Controller_Front::getInstance(); $front->setControllerDirectory(...path...); 或多条路径 $front = Zend_Controll

使用Zend Framework,我希望使用存储在非默认目录中的控制器

我试图实现的是,如果请求的路径以admin/controllers/admin开头,则使用layout/admin和views/admin等

我将如何以一种相当优雅的方式实现这一点

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(...path...);
或多条路径

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory(array(
    'default' => '/path/to/application/controllers',
    'blog'    => '/path/to/application/blog/controllers'
));

您可以使用模块目录结构。创建目录结构

application
  default
    controllers
    views
    models
  admin
    controllers
    views
    models

有关更多信息,请查看

上的文档。如果以下答案都不符合您的需要,请给出一个更具体的例子,因为我没有完全得到您想要的。给出一个示例URL以及控制器、布局和视图文件的名称。根据您当前的示例,我只能确定控制器文件名。其他人没有。我投票给你,因为你是对的,但选择了另一个答案作为选择答案,因为我喜欢使用模块化目录结构的想法。我真的试着照你说的做了,结果我只是把我的路弄混了!我写的和Brian Fisher写的是一样的;)我不在乎你选择了什么答案,我只是很高兴你解决了你的问题。p、 s.tnx支持投票表决;)请注意:如果您在bootstrap _init*()方法中调用$front->setControllerDirectory,那么调用
$this->bootstrap('FrontController')是明智的。(我花了几个小时来处理我传递给setControllerDirectory的值似乎被神奇地覆盖的奇怪现象)。嗨,如果这个答案能与glavić的答案合并,那就太好了。我喜欢模块化目录结构,现在正在使用它,但他的回答显示了如何让前端控制器知道模块的目录在那里。请编辑以包括此,我没有足够的代表!