2009-04-24 42 views
17

當開始一個新項目時,我總是被這個問題所欺騙。當我看到例如Mephisto,Typo等的例子時,他們將根路由到與特定資源/模型相關的控制器。命名根控制器

我的問題是,幾乎我所建的每一個網站,我覺得我的頭版居然是我的所有車型的合作,我不能看到自己指向的是關係到一個特定的控制器作爲我的着陸頁。

有誰傾向於創建一個專門用於該網站的前端控制器?或者,如果我正在看這完全錯誤的,請讓我知道。

編輯:

這裏就是我的困惑存在:

rboard's routes地圖根到控制器命名指數...但我幾乎找不到一個索引控制器

mephisto's routes使用一些custom routing東西,並沒有根,甚至沒有map.connect'/'

radiant's routes爲大部分的應用程序去一個控制器,然後做一些瘋狂的魔術

track's routes轉到與資源相關的控制器(這是一個最接近我上面描述的例子)......但不適合我,因爲正如我所說,我的根傾向於擁有大量的東西。

spot us實際上做類似什麼我做了什麼,有一個家庭控制器,只是有一個表演動作,那就是我的頭版。

+0

我在Django和ASP.NET上也有這個問題。不要限制你的問題到一個特定的框架。 :)) – AmiNadimi 2018-02-18 08:15:42

回答

9

我的問題是,幾乎每一個網站 我曾經構建過,我覺得我的前 頁面實際上是我的所有模型的 協作,並且我看不到我自己 指向與作爲我的 登錄頁面的特定人員相關的 控制器。

沒錯。所以你在做什麼是正確的。

我經常讓兩個控制器與不常用的REST東西進行交互:'welcome'和'dashboard'。歡迎控制器映射到我的網站的根目錄,而'儀表板'控制器類似,但用於登錄用戶。

+0

所以你說的是,大多數人的主頁基本上是一個寧靜的資源,在這種情況下,需要特殊情況下不映射到與模型相關的控制器。 – phillc 2009-04-27 14:05:08

+0

我不知道大多數人的。我的通常和你一樣。他們不是資源,他們是一堆不同的人。 – 2009-05-02 01:41:42

2

不知道這是你正在尋找的答案,但這裏是我做的。我通常使用兩種控制器類型的組合,即前端控制器和動作控制器。 Front Controller負責URL路由並確定要執行的操作,而Action Controller提供實際的功能。這與Zend Framework的做法類似。

有了這樣說,我會管的所有流量通過一個前端控制器,包括前臺頁面的流量。我通常有一個名爲「IndexController」的動作控制器來處理各種頁面請求,並且通常頭版屬於該類別(以及隱私策略頁面,聯繫表單等)。

如果一個頁面沒有具體涉及到任何網站的業務領域邏輯的,我傾向於把它放在我的索引動作控制器,雖然我努力集團網站功能儘可能地。

5

有沒有人傾向於創建專門用於網站前端的控制器?或者,如果我正在看這完全錯誤的,請讓我知道。

簡短回答是「是」。

對於什麼是值得的,我通常採取類似的方法Spot.Us和定義一個索引動作/視圖的HomeController,只是把它留在那。

+1

我去HomeController。首頁,默認,網站對我來說都很好。 – 2009-04-24 20:49:36

0

SiteController似乎是我最好的名字。SiteController將包含您的最重要的行動,索引和我SiteController總是包含其他操作,如接觸,約等