2011-10-29 10 views
1

私はdrupalの初心者です。以前はcakephpとcodeigniterフレームワークを使っていました。両方ともMVCをベースにしていますが、Drupal 6がMVCベースの場合は100%の確信はありませんが、別々のレイヤーがあります。したがって、codeigniterでは、/ users/show/1のようなURLは "users"クラスのように解釈され、メソッドは "表示"し、ユーザのIDは "1"になります。この方法でDrupal URLを解釈できますか?drupal URLをどのように解釈しますか?

また、私はdrupalがパスエイリアスの良いビットを使用していることを知っているので、大きな影響を与えますか?したがって、domain/admin/xyz?u = 1(example url)というURLがある場合、adminモジュールでこれを見つけることができますか?

答えて

2

短い答えはいいえ、あなたが示唆する方法でDrupal URLを解釈することはできません。 DrupalはMVCではなく、URLはそのようなパターンに適合しません。どのモジュールでもページに必要なパスを定義することができ、それらのパスはalisesを使用してオーバーライドすることができます(あなたの質問で示唆したように)。

Drupal 6ではOOPがほとんど使用されておらず、私の頭の上からはほとんどクラスが宣言されていないコアモジュールは考えられません(MVCスタイルの規約を使用して宣言するだけではありません)。これはDrupal 7でかなり変化しましたが、まだMVCのアプローチを使用していません。

特定のパスに使用されるpage callbackの機能を確認するために、コアモジュールのhook_menu()の実装を検索することになります。そして、エイリアスがオンになっていても、おそらくそれを見つけることはできません。

少しヒントとして、Drupalページのルーターパス( 'true'パス)は常に$_GET['q']にあります。

+0

そして、「MVCでないなら、それはなんですか?」:Drupalが「PAC」を使用していると[人々は主張する](http://www.garfieldtech.com/blog/mvc-vs-pac) (Presentation-Abstraction-Control)](http://en.wikipedia.org/wiki/Presentation-abstraction-control)モデルを参照してください。 – marcvangend

関連する問題