浅析PHP模板引擎运行的机理

PHP有相当多的模板引擎,比较出名的也是笔者比较喜欢的有smarty引擎。

模板引擎的机理是分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

下面我通过编写的一个类简要的说明运行机理。

首先我说下大致的使用过程:

1.引入模板引擎,可以通过类中的–autoload()方法自动加载相应类。

2.给相应的要生成的动态内容赋值。例如在smarty中通过$smarty->assign(“name”,$value);给name赋予$value值,但是查询
name的值的过程交给程序员做。

3.调用方法生成动态内容。$smarty->display(“test.tpl”);

下面写上我写的一个缩小型模板引擎

class template {

private $vars=array();
public function setattributes($name,$value){
$this->vars[$name]=$value;

}
public function getHtml($html){
foreach($this->vars as $name=>$value){
$html=str_replace(‘{‘.$name.’}’,$value,$html);
}
return $html;

}
}
$template =new template;
$template->setattributes(“name”,”lvxinwei”);
echo $template->getHtml(“I am  {name} “);

可以看到我输入“ I am {name}” 输出“my lvxinwei”;

原理就是将变量值以key-value对储存起来。然后处理输入用键值替换键名。

当然这个引擎不是很实用但是说明了模板引擎运行机理。


Leave a Reply

Time limit is exhausted. Please reload CAPTCHA.

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据