2012-06-14 66 views
0

我將前端控制器模式與命令解析器類結合使用,其中的唯一功能是將請求從視圖映射到命令對象。PHP - 前端控制器模式。一個巨大的switch語句

一切工作正常,但我開始懷疑我的實現,它基本上包含一個switch語句,實際上是不好的做法。

將這個switch語句替換爲XML文件,或將請求物理地映射到命令類中的文件(即請求名稱將是文件名),或者是switch語句罰款這個目的?

編輯:我使用的是MVC,前端控制器存在於控制器中。這更多的是設計模式問題中的設計模式。

+0

爲什麼不使用MVC呢? –

+0

對不起,我應該指定。我實際上使用MVC,前端控制器只是控制器的一個組件。 – jerry

回答

1

通過使用開關,你是硬編碼了很多。如何寫命令函數,它將檢查可能的文件數組(可能來自將通過讀取文件目錄來填充一次的緩存),如果文件正常,則加載文件。

4

前端控制器需要一個路由器類,經常與MVC設計模式一起使用。

要看看如何避免switch,請參閱phpro.org這個漂亮教程:

Here is how the router is constructed in above tutorial.

+0

好的建議。這可能有點棘手,但因爲我的應用程序真的很重要,所以沒有太多的東西被附加到URL上。 – jerry

+0

@saddog:這應該給你一個想法,雖然:) – Sarfraz