Zend 框架指定模块控制器目录实现


Zend framework Specifying Module Controller Directories implementation?

>我正在尝试创建一个模块化结构来zend框架项目,我正在尝试做的是创建一个看起来像这样的模块

docroot/
    index.php
application/
    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/

阅读文档后我无法理解的是在哪里添加以下代码,或者我应该重构/zendlibrary/Controller/front.php ?

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

$front->addControllerDirectory('/path/to/application/news/controllers',
                               'news');

方法添加到引导程序可能是最简单的方法:

protected function _initFrontController()
{
    $front = Zend_Controller_Front::getInstance();
    $front->setControllerDirectory(array(
        'default' => APPLICATION_PATH.'/default/controllers',
        'blog'    => APPLICATION_PATH.'/blog/controllers'
    ));
    return $front;
}

首先,当我们这样做时,我们将模块放在应用程序/模块/而不是应用程序/

在配置(应用程序/配置/配置.ini)中,您将需要如下所示的内容:

[bootstrap]
Autoloadernamespaces[] = "Zend_"
Autoloadernamespaces[] = "default_"
Autoloadernamespaces[] = "blog_"
Autoloadernamespaces[] = "news_"

resources.frontController.moduleDirectory = APPLICATION_PATH "modules"
resources.frontController.defaultModule = "default"
resources.frontController.prefixDefaultModule = 1
resources.frontController.throwErrors = true
resources.modules[] = "default"
resources.modules[] = "blog"
resources.modules[] = "news"
resources.layout.layout = "layout"
resources.view.encoding = "UTF-8"
resources.view.basePath = APPLICATION_PATH "modules/default/views/"

可能还有更多,如果有帮助,请告诉我。

你试过Zend Tool吗?

就这么简单:

zf create module mymodule

阅读更多关于 Akrabat 的文章 采埃孚中的引导模块.

您可以使用命令行在模块内轻松创建控制器、操作、模型和表单。该工具将为您生成所有内容。