2012-02-28 82 views
0

第一次只是在PHP中使用MVC修補。我正在學習一個簡單的教程,我偶然發現了當前教程中沒有提到的一個問題:如果我想包含MVC原則中包含全局文件(如頁眉和頁腳)的正確方法是什麼每頁的一些特殊功能(在頁眉和/或頁腳內)?MVC-PHP中的全局文件

假設我有一個「日誌頁面」和一個「主頁」,它們都包含footer.php。然而在「日誌頁面」上,我想在頁腳中添加一些額外的文本(爲了簡單起見)。製作單獨的文件是一個解決方案,但這感覺很尷尬,也打破了我心目中的MVC原則。

另一種解決方案可能是從控制器傳遞$ _REQUEST來決定哪些視圖應該加載到頁腳中 - 但是這又似乎打亂了MVC,因爲在我看來,這是應用程序邏輯?

我開始相信第三個解決方案是最好的(記住我在學習!)是通過控制器將數據從頁面和頁眉傳遞到頁面意見,從而使自己的頁眉和頁腳的意見。

+0

該模型將數據傳遞給視圖?不會是MVC。控制器必須從模型中獲取數據並告訴視圖... 打破頁眉 - 頁腳 - 頁腳模板結構與MVC無關(視圖是視圖)。 – helle 2012-02-28 09:13:49

+0

嗯,我還不夠清楚。數據從模型到控制器,然後加載並傳遞數據到正確的視圖。 – 2012-02-28 09:22:09

回答

0

由於這些都是全局文件,因此包含機制與MVC模式無關。儘管這些頁眉/頁腳中的函數應該遵循MVC模式執行。

一個解決方案,我能想到的是要補充一點:

php_admin_value auto_prepend_file "/Path/to/header.php" 
php_admin_value auto_append_file "/Path/to/footer.php" 

你的虛擬主機定義。

並添加機制以包含您希望包含在這些文件中的視圖。

+0

我明白了,這很有道理。如果有人想要追加某些東西(我已經對PHP MVC有很多解釋了),我會留下一些線索以解決問題。 – 2012-02-28 09:27:43

+0

@KGChristensen很酷 – ThinkingMonkey 2012-02-28 10:12:25