2012-02-04 7 views
3

MVCとURLルーティングの背後にあるコンセプトを理解しようとしています。私はそれがあなたのコード、したがってMVCを分離するのは良いことだが、URLルータの背後にあるアイデアを理解していないことを理解する!なぜMVC /ルータを使用するのですか

htaccessに書き換えルールがたくさんある代わりに、すべてのトラフィックをrouter.phpに送信します。このページでは、ページURLと対応するPHPコントローラを持つ配列があります。

それをシンプルに保つために、私はちょうど出力が最終的に生成されたコントローラ、しかし他の慣行の多くを見た、私はイムは、何か間違ったことをやっていることを恐れて、あるいは何らかの方法で悪いんだ...

が含まれます

誰かが私に啓発してもらえますか?コントローラーを組み込んで出力を生成するのは大丈夫ですか?おそらく誰かがURLルーティングを行う方法がたくさんある

答えて

4

(初心者のための分かりやすい何かを)詳細に件名を記述するいくつかの情報、あらかじめ

感謝しています。 backbone.jsのようなクライアント側もあれば、サーバー側のものもあります。 .htaccessを使ってそれを行うことは一つの方法です。別の方法は、ハードパス、または構文解析してどこに送信するかを把握するための前提条件パスを持つことです。それらのどれもが100%正しいか100%間違っている、それはすべての好みであり、あなたがルートファイルでうまくいっているように聞こえる。

さまざまなフレームワークのルーティングの詳細については、CodeIgniterのルーティングに関するドキュメントとSymfonyフレームワークを参照して、2つの異なるスタイルのサーバーサイドルーティングを見て、クライアント側のbackbone.jsフレームワークを見てください。類似点と相違点を確認するためにルーティングするだけです。

2

MVCコンセプトのルータは、ユーザがページを要求したときにロードするコントローラを決定します。例えば。ユーザがexample.com/something/very/importantを要求すると、ルータはこのルートにマップされたアクションを探して実行します。それを達成する方法(単純なインクルード、クラスのインスタンス化やメソッドの実行など)がありますが、私が思いついた最もシンプルで強力なソリューションは、すべてのアクションに対して別々のクラスを作成することです。私はこの問題について何度か尋ねられたので、ここで少しの記事を書いてきました。ここでそれを見てください:Writing a simple and fast mvc router with PHP

1

ASP.NETルーティングモジュールは、特定のMVCコントローラのアクション

ルーティングは、着信要求を監視し、その要求の処理方法を把握するパターンマッチングシステムです。実行時に、RoutingエンジンはRouteテーブルを使用して、着信要求のURLパターンをRouteテーブルで定義されたURLパターンと照合します。 Application_Startイベントで1つまたは複数のURLパターンをRouteテーブルに登録できます。

関連する問題