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类库而已,如果需要其它扩展,操作亦是如此。
';