使用Smarty模版引擎实现PHP前后端分离初探

虽然说smarty模版引擎已经是老物了。但由于当年的一时盛行,曾几何时,也被列为了PHP官方推荐的模版引擎。

如果现在进行一个新项目的开发,也许很少有人再会去用smarty,但对于维护老项目,以及进行二次开发,smarty还是有很大的市场。所以,对于一个PHPer来说,掌握好smarty,不失为一个基本功。

smarty模版引擎目前的最新版为3.1.13,可以从smarty官方网站http://www.smarty.net/上免费下载到。

要使用smarty模版引擎,首先需对其进行简单的初始化操作:

include_once(“./Smarty/Smarty.class.php”); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->templates(“./templates”); //设置模板目录
$smarty->templates_c(“./templates_c”); //设置编译目录
$smarty->cache(“./cache”); //缓存目录
$smarty->cache_lifetime = 0; //缓存时间
$smarty->caching = true; //缓存方式
$smarty->left_delimiter = “{#”; //设置标签左侧的识别符
$smarty->right_delimiter = “#}”; //设置标签右侧的识别符

这里需要注意的是,为了能使html页面中的js正确解析花括号,可以把左右识别符分别换成”<!– “和” –>”,但取而代之的是给注释带来了麻烦,不过一般html语法较简单,不用过细的注释一般也能看懂。

建议单独新建一个PHP文件,写入上述smarty配置信息,然后在所要用到的页面进行加载。

在PHP中最基本的smarty语法主要有两个:

$smarty->assign(“name”, $var); //进行模板变量替换
$smarty->display(“index.html”); //显示html部分内容

name是静态文件中的变量名,$var是PHP中的变量名。assign方法是给PHP中的变量分配一个新的名字,这个名字主要用于在html文件中引用。这样html模版就有了动态变量的功能。如果你按照我刚才说的将左右识别符替换为”<!– “和“ –>”,那么此时引用$var就可以这样写<!– $name –>,而在这个位置显示的其实就是$var的内容。

display方法是在PHP中显示html模版的内容,显示的模版内容可以使用smarty的变量和判断循环语句。

这样,简单的前后端分离就实现了。程序员只需维护PHP文件,而前端设计师,则只要处理templates中的html等内容。

Add a Comment