在Smarty模板引擎的基本知识介绍
1。基本概念
1。MVC是什么
MVC是一种开发模式,其核心思想是:数据的输入、数据的处理以及数据显示的强制分离。
2。什么是Smarty
Smarty是一个PHP模板引擎,更特别的是,它可以帮助开发人员更好的单独的程序逻辑和页面显示。
The operating principle of 3.smarty
模板文件是显示要显示的数据由占位符替换的数据的模板。
当smarty运行,它会读取模板文件,替换占位符的模板文件的实际数据,并输出处理的PHP文件,这是由服务器。
两。为自己写一个模板
为了更好地理解Smarty模板,现在自己写的Smarty模板- minismarty,让自己更了解Smarty运行原理。
1。新项目minismarty
新的模板文件路径:模板
编译后的文件路径的新建模板文件:templates_c
新的模板文件:intro.tpl
新的运行文件index.php
建立你自己的聪明,即处理模板文件:cls_minismarty.php
2。写的index.php文件
< PHP
require_once。 / cls_minismarty PHP的;
minismarty美元=新minismarty();
数据传输
minismarty美元->分配(标题
minismarty美元->分配(内容
将数据传输到显示
minismarty美元->显示(介绍。物流);
>
三.写intro.tpl文件
{ $标题}
{内容}
本文在一个占位符的形式,和Smarty的作用是取代占位符的内容转化为实际数据。
在这种方式中,模板文件和数据文件可以被迫分开,和数据传输可以通过Smarty进行。
4。写cls_minismarty.php文件
< PHP
*
*它最初通过Smarty模板引擎的数据提供的模板
*现在模拟编写模板以向模板提供数据的类。
*文件运行时,读取模板文件,替换模板文件到一个运行的PHP文件
*服务器真正运行的文件是处理过的文件。
* /
类minismarty {
/模板文件路径
VaR template_dir美元= , / / 模板;
将要替换的文件路径模板文件
VaR templates_c_dir美元= , / / templates_c;
存储变量值
VaR tpl_vars美元=阵();
主要的方法是模拟2
*添加数据
*参数1:键
*参数2:值,默认为null。
* /
功能分配(tpl_var美元美元,var = null){
如果(tpl_var美元!=){
美元-> tpl_vars { $ tpl_var } = $ / /无功;将数据添加到阵列
}
}
*显示数据
*参数1:显示哪个模板文件
* /
功能显示($ tpl_file){
得到/路径模板文件
tpl_file_path美元=美元-> template_dir。tpl_file美元;
获取模板文件是编译的文件路径。
compile_file_path美元=美元-> templates_c_dir。com_ 。tpl_file美元。;
/ /找到
如果(!file_exists($ tpl_file_path)){
返回false;
}
/不是每一代编译的文件,只有编译过的文件不存在,或者修改模板文件来生成新的编译文件。
等效于已编译的文件缓存。
/ /个功能:获取文件的生成时间
如果(!file_exists($ compile_file_path)| |个($ tpl_file_path)>个($ compile_file_path)){
读取模板文件内容
fpl_file_content = file_get_contents美元(美元tpl_file_path);
美元($ fpl_file_content纽世达= myReplace);
替换字符串以生成一个新文件,该文件是已编译的文件。
file_put_contents(compile_file_path美元,美元纽世达);
}
在编译后的文件中
包括compile_file_path美元;
}
*替换模板文件中的内容以获取新字符串
* /
功能myReplace($ fpl_file_content){
$模式=数组(
/ { * $({ } { } a-za-z_ a-za-z0-9_ *) * } /我
);
$ =数组(
tpl_vars {$ { 1 }}
);
纽世达美元= preg_replace(合模式,取代美元,美元fpl_file_content);
返回纽世达;
}
}
>
介绍了preg_replace方法。
参数1:替换规则
参数2:替换内容
参数3:替换操作的内容
5。运行结果
标题和内容如下所示:
结论:
实际运行的文件是不是也intro.php index.php文件,但两Smarty动作后:
com_intro.tpl.php.the数据文件是index.php,显示intro.tpl布局,以及中间的桥是Smarty。
Smarty的作用是接受数据,填写数据(模板中的占位符),和负载的替换文件。
三。解释Smarty的细节
1。如何配置Smarty
解压后,复制libs文件夹的项目目录,然后创建2个文件夹模板和templates_c,分别设置模板文件和模板编译文件。
2。使用smarty注释
(1)替换变量的指示符。
因为默认标识符是{ }中的冲突和样式样式,所以您需要修改默认标识符,一般修改为:{ } }
(2)修改标识符的方法。
方法1:直接修改Smarty的源代码:不推荐。
方法:利用Smarty的方法修改方法。
Smarty美元-> left_delimiter ={ <;
Smarty美元-> right_delimiter => };
Smarty的基本配置
Smarty美元-> template_dir = , /模板; / /模板路径
Smarty美元-> compile_dir = , / templates_c / /编译器的路径;
Smarty美元->缓存= false; / /使用缓存
Smarty美元-> cache_dir = , / smarty_cache ; / /如果你使用缓存:缓存路径
3.smarty模板配置变量的技术细节
总之,PHP支持的各种数据都可以分配。
PHP基本数据:int双弦bool
复合数据类型:数组对象
特殊数据类型:资源null
希望本文能对大家的PHP程序设计有所帮助。