标签:http 置配 案例 java 原理 表示 host failed compile
PHP实现简易的模板引擎
1. Model(模型)表示应用程序核心(比如数据库记录列表)。
2. View(视图)显示数据(数据库记录)
3. Controller(控制器)处理输入(写入数据库记录)。
MVC的流程图如下(来源百度百科):
采用模板引擎使得数据和显示分离,这种方式更易于维护。
<!DOCTYPE html>
<html>
<head>
<title>混写代码</title>
</head>
<body>
商品信息:
<?php
mysql_connect("localhost","root","") or die("conect failed:".mysql_error());
mysql_select_db("shop");
$result = mysql_query("select * from sh_goods");
?>
<ul>
<?php while (mysql_fetch_array($result)) {?>
<li><?php echo $result[‘good_name‘]; ?></li>
<?php } ?>
</ul>
<?php
mysql_free_result($result);
mysql_close();
?>
</body>
</html>
这种方式往往随着前端逻辑的复杂度变得越来越大,代码的可读性也会变得很差,代码的可重用性也不好。(比如我们需要重复的编写从数据库中获取数据的代码)
该机制主要是执行数据库操作的代码get_data.php单独放到一个文件中,显示的hmtl代码show_page.php放到另一个文件中,然后在html代码show_page.php中包含执行数据库操作的代码get_data.php.代码如下:
<?php
mysql_connect("localhost","root","") or die("conect failed:".mysql_error());
mysql_select_db("shop");
$result = mysql_query("select * from sh_goods");
$data = array();
while (mysql_fetch_array($result)) {
$data[] = $result[‘good_name‘];
}
mysql_free_result($result);
mysql_close();
?>
<!DOCTYPE html>
<html>
<head>
<title>分离代码</title>
</head>
<body>
商品信息:
<ul>
<?php
include ‘get_data.php‘;
foreach ($data as $key => $value) {
?>
<li><?php echo $value[‘good_name‘]; ?></li>
<?php } ?>
</ul>
</body>
</html>
该机制比较简单,符合PHP的语法和使用的习惯,显然比混写代码更容易维护。但是,有时考虑到网站的性能,我们想要缓存代码的时候,这种方法就不能提供支持了。类似的,错误处理,可配置化,脱离php语法等高级功能也不容易实现。
该机制与上一个机制刚好相反,在负责数据操作的文件中包含模板,模板只负责显示即可,不用考虑php操作。
本引擎的执行流程如下:
由于代码有点长,所以放在github上,O(∩_∩)O~,代码比较简单,可以加深我们对模板引擎的理解,smarty等更复杂,但基本原理差不多就是这样。
具体代码链接如下:https://www.github.com/fengyuhetao/Code.git,该目录Template Engine中就是简易的模板引擎代码。
标签:http 置配 案例 java 原理 表示 host failed compile
原文地址:http://www.cnblogs.com/apolloren/p/7819793.html