PHP 程式設計/為什麼要使用模板
外觀
< PHP 程式設計
那麼什麼是模板呢?對於我們來說,模板是一個類似 HTML 的文件,它定義了網頁的呈現方式,而 PHP 指令碼則提供內容。內容和呈現的分離是任何GUI正規化的核心。為了理解為什麼這是可取的,考慮以下假設但現實的指令碼。這是一個從資料庫中檢索書籍列表並將其顯示為表格(每行交替顏色),如果列表為空則顯示“沒有找到書籍”的指令碼。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>List of Books</title>
</head>
<body>
<?php
$books = new Array();
$i = 0;
$database = open_database();
if (is_null($database)) {?>
<h1>Error opening database</h1>
Please contact the system administrator at alice@wonderland.com and report the problem.
</body>
</html>
<?php
exit();
}
$result = $database->query("SELECT ISBN, title, author FROM book");
while ($row = $result->retrieveAssoc()) {
$books[] = $row;
}?>
<table>
<?php
if (count($books) == 0) {
echo "<tr><td>No books found</td></tr>";
}
else {
foreach ($books as $book) {
if ($i % 2 == 0) {
echo "<tr bgcolor='#EEEEEE'>";
} else {
echo "<tr bgcolor='#FFFFFF'>";
}
$i++; ?>
<td><?php echo $book['ISBN']; ?></td>
<td><?php echo $book['title']; ?></td>
<td><?php echo $book['author']; ?></td>
</tr>
<?php
}
}?>
</table>
</body>
</html>
你會發現自己很快就會編寫這種型別的指令碼。這種指令碼的問題很明顯
- 這個 PHP 頁面實際上是兩個頁面,一個是錯誤訊息,一個是正常顯示。很混亂。
- 即使是對於正常顯示部分,PHP 指令碼也做了兩件事:準備資料並格式化它,例如為每行交替顏色。
- 看看 PHP 和 HTML 程式碼是如何交織在一起的。良好的縮排變得幾乎不可能,這使得程式碼難以閱讀。
- 如果你的老闆現在想要的是一個列表,而不是一個表格?你需要修改你的 PHP 程式碼來實現。
- 現在你的老闆想要一個更漂亮的錯誤頁面,至少需要 300 行 HTML 程式碼,你還能分辨出你的第一個“頁面”在哪裡結束,第二個頁面在哪裡開始嗎?
- 如果你想對你的頁面進行任何美學上的修飾,你可能需要教你的圖形設計師學習 PHP。
等等等等。