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 [email protected] 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。
等等等等。