2011-05-18 86 views
5

我有PHP和HTML代碼的文件混合,如:什麼是保持我的PHP文件只有PHP代碼的最佳方式?

echo "<tr class='somthing'>"; 

是什麼讓我的PHP文件只用PHP代碼的最佳方式?

+0

我真的不知道你是什麼意思是 - 你的意思是你希望PHP和HTML代碼是分開的嗎? – Nightfirecat 2011-05-18 20:03:58

+0

是的,我有一個文件與PHP和HTML代碼在一起 – 2011-05-18 20:07:03

+0

下面的大多數答案將要說使用模板系統。不要忘記,PHP本身就是一個模板系統,已經成爲一種完整的語言。 – 2011-05-18 20:11:52

回答

4

有關於這一些爭論,所以我會簡單地說,不管你選擇, 堅持下去。

通常,您可以使用模板系統(例如Smarty)來保持文件正式清理PHP代碼,但這在速度部門中有一些缺陷。

或者,您可以通過分解顯示相關部分並在其中使用小型PHP代碼段來使用最小代碼,例如,

<?php foreach ($myArray as $myElement): ?> 
<tr> 
    <td><?php echo $myElement; ?></td> 
</tr> 
<?php endforeach; ?> 

當然,這並不能完全按照自己的代碼從你的HTML代碼中分離,但是這幾乎是不可能的事情平凡做;在我看來,Smarty模板只是不同的代碼,而不是缺少代碼。這種方法是由一些框架提倡的,比如codeigniter和Zend Framework(以爲你也可以在Smarty中使用它們,它不是默認的)。

要記住的一件重要的事情是,你的顯示邏輯就是這樣:邏輯。無論您選擇哪種方法,在您使用純靜態顯示器之前,您絕對不會在顯示器中100%免費使用代碼(或其他代碼/應用程序解釋的類似代碼的標記)。

+0

不僅速度快,而且學習曲線也是學習如何做到這一點的。這就是我對django的一點誤解(不是說django是用於php ..但是你知道的)。 – jlindenbaum 2011-05-18 20:12:55

+0

我不知道什麼樣的速度擊中你的談論我的網頁加載就好我使用聰明的緩存,也許這可能會有所不同,它對我來說真的不難學。但每個人都不一樣 – mcgrailm 2011-05-18 20:17:04

2

你可以去像Smarty的模板引擎的list。這使您可以讓控制器準備好所有數據,然後將其傳遞給視圖進行渲染。

你也可以自己做。您有一個簡單的使用或基本循環來回顯行的視圖。嚴格的輸出,沒有其他的邏輯。您的控制器準備好數據,然後您可以使用輸出緩衝來包含視圖,渲染它,獲取緩衝輸出並在稍後的時間點回顯。

2

將「數據」和「顯示」邏輯分開是很好的做法。這樣做的一個好方法是使用稱爲模型,視圖,控制器(MVC)的架構。大多數PHP框架都是圍繞MVC構建的。看看Zend Framework或Codeignitor。

1

一種方法是像其他人提到的那樣利用像Smarty這樣的模板系統。我有些寫了一個引進到它在另一個問題:

Beginner's guide to making a template driven PHP site

正如你所看到的,它提供了一個很好的方式,讓你的HTML和PHP代碼分開

相關問題