1

Zend Frameworkベースのアプリに取り組んでおり、ブートストラップでMVCを初期化しています。現在、アプリケーションにAJAXレイヤーを追加しているので、コントローラーアクションで、ビューレンダリングを無効にし、最初にブートストラップでMVCを開始するアプローチに疑問を呈し始めます。また、アプリケーションにcron / cliサポートを追加する必要があるため、その部分のMVCレンダリングも停止する必要があります。つまり、MVCが不要な状況(AJAX、Cli、Cronなど)がありますが、最初はブートストラップの一部として実行され、後で強制的に停止します。

したがって、このような状況をより適切に処理する別のアプローチが必要であると確信しています。最初にMVCを開始する代わりに、出力をクライアントに送信する直前に開始することができます。

4

2 に答える 2

1

AJAX や CLI に MVC が必要ないのはなぜですか? このコンテキスト スイッチが MVC の存在理由です。モデルやコントローラーを保持し、別のビューを使用します。

しかし、別のブートストラップ ファイル (index.php の代わりに) を作成することもできます。「通常の」リクエスト (ナビゲーション、ルート、レイアウト + ビュー管理、 acl、..)。現時点では、AJAX が現在の構造に完全に適合するため、別のブートストラップ ファイルは使用していません (レイアウトを除きますが、そのための contextSwitch があります)。

于 2011-11-21T22:06:09.343 に答える
0

index.php でのアプリケーションの起動を簡単に見てみましょう。

$application->bootstrap() // here you load and configure your resources
            ->run();      // here you launch the request handling, dispatching, mvc, etc.. 

アプリケーションを CLI コンテキストで使用する場合は、MVC アプリケーションを実行するのではなく、ブートストラップのみを行います。を省略して->run()ください。

もちろん、スクリプトで必要なリソースのみを初期化することもできます。

$app->bootstrap('cachemanager')->bootstrap('db');

Ajax の場合、コントローラーとアクションが必要な場合は、「MVC」と呼ばれるものが必要です。「Ajaxコントローラー」の概念に関する詳細を見つけることができるこの最近のSOの質問があります。

于 2011-09-21T13:28:49.383 に答える