ZF2 ドキュメントでは、代替レンダリングと応答戦略の作成と登録について説明しています。私はそれを読みましたが、戦略の使い方がよくわかりません。
HTTP ヘッダーの受け入れに応じて、3 種類の出力 (JSON、XML、および HTML) を出荷する必要があるアプリケーションがあります。この場合の戦略をどのように使用できますか?
ZF2 ドキュメントでは、代替レンダリングと応答戦略の作成と登録について説明しています。私はそれを読みましたが、戦略の使い方がよくわかりません。
HTTP ヘッダーの受け入れに応じて、3 種類の出力 (JSON、XML、および HTML) を出荷する必要があるアプリケーションがあります。この場合の戦略をどのように使用できますか?
Zend Framework 2 での戦略の大まかな概念は、MVC アプリケーション サイクル中にイベントがトリガーされたときにアプリケーションが従うべき動作であり、実際にはイベント ドリブンです。
より実用的な用語では、戦略は基本的にイベント リスナーであり、通常は の具体的なインスタンスであり、通常はやなどのさまざまなイベント\Zend\EventManager\AbstractListenerAggregate
をリッスンします。\Zend\Mvc\MvcEvent
EVENT_RENDER
EVENT_RENDER_ERROR
リスナーは にアタッチされ、前述の\Zend\EventManager\EventManager
を使用し\Zend\Mvc\MvcEvent
て MVC サイクルのすべての基本的なリソース (ルーター、要求、応答、アプリケーション自体など) にアクセスすると、リスナーはアプリケーションのステータスを検査し、そのフローを変更できます。
ZF2 の公式ドキュメントで提供されている例では、リスナーはリクエストの受け入れヘッダーを検査し、レンダラーを選択して、それに応じてレスポンスを変更します。
ただし、少し古いので、フレームワークによって提供される主要な戦略のコードを読んで、より良い例をいくつか見て、404 エラー ページのレンダリングを\Zend\Mvc\View\Http\RouteNotFoundStrategy
リッスンしEVENT_DISPATCH
て処理することをお勧めします。EVENT_DISPATCH_ERROR
また、全体がどのように機能するかを理解することも非常に重要ですEventManager
。そのための公式ドキュメントは非常に優れており、さらに、グーグルで検索すると、それに関する多くの情報があります。