0

フレームワークプロジェクトを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');
4

3 に答える 3

0

まず、これを行ったときに、モジュールをapplication/ではなくapplication/modules/に配置しました

構成(application / configs / configuration.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/"

それにはもっとあるかもしれません、これが役立つかどうか私に知らせてください。

于 2012-05-03T19:29:57.210 に答える
0

ブートストラップにメソッドを追加するのがおそらく最も簡単な方法です。

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

    return $front;
}
于 2012-05-04T08:12:35.970 に答える
0

Zend Toolを試しましたか?

これは簡単です:

zf create module mymodule

ZFでのAkrabatのポストブートストラップモジュールの詳細をご覧ください。

コマンドラインを使用して、モジュール内にコントローラー、アクション、モデル、フォームを簡単に作成できます。ツールはあなたのためにすべてを生成します。

于 2012-05-04T09:00:41.300 に答える