2011-10-29 26 views
1

我是drupal的新手,並且早些時候使用過cakephp和codeigniter框架。他們都是基於MVC的,如果Drupal 6是基於MVC的,我不是100%確定的,儘管它有單獨的代碼層。因此,在codeigniter中,像/ users/show/1這樣的URL將被解釋爲在「用戶」類中,並且方法將「顯示」,並且用戶的ID將爲「1」。我們可以用這種方式解釋一個drupal網址嗎?我們如何解讀drupal網址?

另外我知道drupal使用了一個很好的路徑別名,所以會影響很大?因此,如果我們有一個url,說明domain/admin/xyz?u = 1(示例url),那麼在admin模塊中我可以找到這個?

回答

2

簡短的回答是否定的,你不能以你建議的方式解釋Drupal URL。 Drupal不是MVC,URL不符合任何這樣的模式。任何模塊都可以爲它的頁面定義它想要的任何路徑,並且可以使用alises重新覆蓋這些路徑(如你在你的問題中所建議的那樣)。

在Drupal 6中使用的非常非常少的OOP,並且我的頭頂上我無法想到任何聲明任何類的任何核心模塊(更不用說使用MVC風格約定來聲明它們)。這在Drupal 7中已經發生了一些變化,但它仍然不使用MVC方法。

恐怕你會減少搜索核心模塊的hook_menu()實現來查看什麼page callback函數用於特定的路徑。即使如此,如果您打開了別名,您可能不會找到它。

作爲一個小技巧,Drupal頁面的路由器路徑('true'路徑)始終可以在$_GET['q']中找到。

+0

如果你想知道「如果它不是MVC,那麼它是什麼?」:[人們爭辯](http://www.garfieldtech.com/blog/mvc-vs-pac)Drupal使用[PAC (Presentation-Abstraction-Control)](http://en.wikipedia.org/wiki/Presentation-abstraction-control)模型。 – marcvangend