4

beta3を使用するスケルトンアプリケーションから始めて、Fooと呼ばれる新しいモジュールのビューパスをどのように解決しますか?

以下をdiconfigに追加しました。これで、両方のモジュールアクションがFooのビューをレンダリングします。

'Zend\View\Resolver\TemplatePathStack' => array(
    'parameters' => array(
        'paths'  => array(
            'foo' => __DIR__ . '/../view',
        ),
    ),
),

Application\Controller\IndexController::indexAction()アプリケーションでビューをFoo\Controller\IndexController::indexAction()レンダリングし、Fooのビューをレンダリングすることを期待します。

4

3 に答える 3

5

このような質問は、安定したフレームワークの方向性を形作るのに役立つことに注意してください。:)

私がいじっていたアイデアの1つは、ビュースクリプトの解決の一部としてモジュールを使用することです。現在、使用されているデフォルトは「/」です。私の提案は「//」を使用することです。これは、モジュール間の名前の競合を防ぐのに役立ちます。また、テンプレートマップを使用する場合、オーバーライドしているビュースクリプトを正確に理解するのがはるかに簡単になります。

今日はこのアプローチを使用できますが、コントローラーから返すビューモデルにテンプレートを手動で設定する必要があります。

于 2012-04-20T20:08:36.577 に答える
2

ビュースクリプトを解決するときに名前空間を考慮に入れるという概念がないため、これは現在ZF2では機能しません。現在、これに取り組む最善の方法についての議論が進行中です。

当面は、各コントローラーに異なる名前を付ける必要があります。一般に、モジュール名の後にモジュール内の「プライマリ」コントローラに名前を付けることをお勧めします。つまり、FooモジュールのプライマリコントローラはになりますFooController

于 2012-04-20T19:11:11.220 に答える
1

あなたは実際にこれを行うことができます。そしてそれはそれほど悪くはない…。

Rob Allen自身が、基本的にこの作業を行うブログ投稿を持っていました...基本的に、これを使用するコントローラーがないように、作業の多くを分離するモジュールベースのローダーとして処理する必要があることに注意してください: http:// pastie .org / 3824571

于 2012-04-20T19:56:00.163 に答える