2009-12-17 32 views
2

我正在爲個人網站編寫我自己的內容管理系統,它的流量會很低,但我想爲我未來的知識使用最佳實踐。在PHP中只加載特定功能的最佳方式

我的計劃是有單獨的部分,基本上是第一個非根目錄,將有它自己的腳本,並將直接控制其所有的子頁面。我希望使用mod_rewrite從根目錄的index.php中控制一切,以使其透明。

什麼是最好的方式來加載只需要什麼是該部分,而不是所有其他部分以及?我正在考慮爲每個部分使用一個單獨的文件,並根據我使用的URL進行命名,因此我只能包含該文件。但那看起來很不起眼。有沒有更好的方法來實現這一點?

回答

4

看看MVC patternFront Controller pattern。這可以通過多種方式實現,其複雜性非常複雜。基本上,您的FrontController將接受任何傳入的請求並將它們分派給適當的控制器(您的部分)。您的控制器將從您的模型中獲取任何數據,例如您的業​​務對象並將其推送到視圖。該視圖是發送回客戶端的內容。

+0

+1:實現了約75%,把我的MVC應用程序的一個實例的平均內存佔用磁帶自動加載機...看看這裏的文檔。 – prodigitalson 2009-12-17 20:39:56

0

那麼你通常看到的是,重寫規則將要麼做一個扁平的寫入/index.php - 然後它會啓動一些函數/類來清理出期望的端點(a控制器)是什麼以及該端點的參數是什麼。那麼你會在該控制器中(比如/mysection/index.php)設置所有資源並調用所有需要調用的內容來顯示該部分的給定頁面。

2

除了Gordon提到的MVC模式之外,爲了確保不加載任何不需要使用的額外類,您可以設置一個簡單的類自動加載器。自動加載器可以以多種方式工作,但是在我目前正在使用的MVC應用程序中,類名稱也是文件的名稱,它也指定了文件的位置。

__autoload是PHP調用的一種神奇方法,如果您嘗試訪問當前未包含的類。然後它執行在該函數中指定的任何動作,然後再次嘗試對該類的相同調用。直接提及有關的圖案,我提到

http://us3.php.net/autoload

+0

注意:您必須使用PHP> 5來利用類自動加載 – eCaroth 2009-12-17 23:10:34

+0

自動加載必須是放入PHP的最佳函數之一。整個文件專門用於包含類的需求已經不復存在。我仍然發現自己經常使用包括奇怪的位置,但總體來說它非常有用。 – 2009-12-17 23:13:07

相關問題