Smarty模板引擎
最后更新于:2022-04-01 11:13:47
### 使用第三方模板引擎
>如果你已经习惯了使用模板引擎来开发项目或者是公司需要,这一切当然是可以的,这儿我们以业内最流行的smarty引擎来示例。
* 首先我们先将smarty模板引擎文件拷贝到`application/extend/lib`目录下
```tree
/application [站点应用目录]
├─extend ----------------------------[系统框架目录]
| └─lib -----------------------------[类库目录]
| └─smarty-3.1.29------------------[Smarty模板引擎]
| ├─plugins ---------------------[libs内文件]
| ├─sysplugins ------------------[libs内文件]
| ├─debug.tpl -------------------[libs内文件]
| ├─Smarty.class.php ------------[libs内文件]
| └─SmartyBC.class.php-----------[libs内文件]
```
* 再在公共控制器`application/admin/Common.php`通过`import()`函数加载Smarty类并配置smarty参数即可。
**Smarty模板引擎配置代码如下:**
~~~
<?php
/**
* 后台公共控制器,继承控制器基类
* 使用的smarty模板引擎
*/
namespace app\admin\controller;
class Common
{
public function __construct()
{
import('lib/smarty-3.1.29/Smarty.class');
//获取内置模板引擎对象
$this->tp= new \Smarty();
$this->setTemplate();
}
public function display($file){
$this->tp->display($file);
}
//返回assign();方法
public function assign($var,$value){
$this->tp->assign($var,$value);
}//配置模板参数
public function setTemplate(){
//变量分隔符
$this->tp->left_delimiter = '{#';
$this->tp->right_delimiter = '#}';
$this->tp->template_dir = APP_PATH . MODULE . '/view'; //定义模板文件存放的目录
$this->tp->compile_dir = APP_PATH . 'cache/compile/' .MODULE; //定义通过模板编译文件存放目录
$this->tp->cache_dir = APP_PATH . 'cache/cache/' .MODULE;//指定缓存文件路径
}
}
~~~
* Smarty配置好以后,我们就可以开始使用了,在相应路径添加模板文件`index.html`,然后在控制器下添加代码看看效果吧,演示代码如下:
~~~
<?php
/**
* 后台入口控制器
*/
namespace app\admin\controller;
//继承公共控制器类
class Index extends \app\admin\controller\Common
{
/**
* 输出后台首页
* @return string [description]
*/
public function index()
{
$info='PHPer';
$this->assign('info',$info);
$this->display('index.html');
}
}
~~~
模板文件:`application/admin/view/index.html
~~~
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h3>后台首页</h3>
欢迎您,{#$info#}。
</body>
</html>
~~~
* 至此,smarty模板引擎扩展完成,当然模板引擎本质就是一个php类库而已,如果需要其它扩展,操作亦是如此。