2011-05-25 49 views
0

混合HTML和PHP的壞主意?PHP代碼分離

我正在讀這tutorial,它似乎像代碼分離是一種更優雅的設計合併某種MVC結構。我腦海中的一件事是 - 混合一點HTML和PHP真的可以接受嗎?

+0

是的,可以接受 – 2011-05-25 13:12:50

+0

是的,我認爲是。 – KingCrunch 2011-05-25 13:14:53

回答

3

只要您爲演示目的而使用HTML和PHP就可以。在MVC結構中,您只能在視圖中將PHP與HTML混合使用,並且僅用於視圖所需的東西。

切勿將業務邏輯與HTML混合使用。

+0

因此,呈現內容很好,而另一個後端PHP應該沒有HTML。 – unleashed 2011-05-25 13:21:38

+0

根據你的意思後端...作爲一個經驗法則,使用PHP作爲模板語言是很好的。使用'foreach','if',從控制器等獲得的變量,但不要查詢,創建對象等等,這是一個控制器的工作。 – rid 2011-05-25 13:23:40

2

是的 - 即使在MVC框架中混合使用HTML和PHP也是完全可以接受的。這是可以接受的 - 這是預期的。

您可能正在談論的「代碼分離」是處理更多的HTML類型的代碼。例如,在大多數MVC框架中,您保留用於檢索數據的邏輯以及實際連接來檢索不同於HTML的文件中的數據 - 但在HTML中,您仍然需要諸如PHP循環,包括...等。

1

在PHP MVC框架誕生之前,這就是傳統PHP網站如何存在的原因:)這是完全可以接受的。

+4

如果人們寫意大利麪代碼,這並不意味着意大利麪代碼是可以接受的。這是醜陋的,不容易的,難以閱讀,容易出錯,我在哪裏開始列出所有的缺點? – rid 2011-05-25 13:15:55

+2

寫「意大利麪代碼」的人,也會在MVC中寫這些。 – user769628 2011-05-25 13:34:32

1

你所包含的「tutorial」有一個example.php文件,由於它處理抽象的荒謬方式而幾乎不可讀。

我覺得大多數人對此太擔心,我傾向於分離得相當沉重,只是因爲我認爲它有助於我編程以在應用程序中具有不同元素(PHP/CSS/HTML/JS)的方式不同的文件。

話雖如此,有時它太多了。 echo '<strong>'.$title.'</strong>';沒有什麼不對,就像<strong><?=$title?></strong>沒有錯。

我想說的一件事就是儘量不要混淆兩者(即在某些文件中將演示文稿中的單獨邏輯混淆,然後變得懶惰並且不要在其他文件中使用),因爲這很可能最終會伴隨着您通過一些文件來試着找到你的get_user_from_email()函數或其他什麼地方。

顯然,如果您使用特定的設計模式,那麼您應該遵循該模式的規則。 MVC應該有一個業務邏輯和表示的分離。