当前位置:编程学习 > > 正文

smarty模板的使用方法实例分析(smarty模板的使用方法实例分析)

时间:2021-10-28 10:45:05类别:编程学习

smarty模板的使用方法实例分析

smarty模板的使用方法实例分析

本文实例讲述了smarty模板的使用方法。分享给大家供大家参考,具体如下:

这里以smarty3为例

首先, 在官网下载smarty3模板文件,然后解压。

在解压之后的文件夹中,libs是smarty模板的核心文件,demo里面有示例程序。

我们把libs文件夹复制到我们的工作目录,然后重命名为smarty。

smarty模板的使用方法实例分析(smarty模板的使用方法实例分析)

假设我们在controller目录下的index.php中使用smarty模板。

index.php

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • <?php
  • require '../smarty/Smarty.class.php';
  • $smarty = new Smarty;
  • $smarty->debugging = false;  //开启debug模式
  • $smarty->caching = true;  //开启缓存
  • $smarty->cache_lifetime = 120; //缓存时间
  • $smarty->left_delimiter = '<{'//左定界符
  • $smarty->right_delimiter = '}>'//右定界符
  • $smarty->template_dir = __DIR__.'/../view/'//视图目录
  • $smarty->compile_dir = __DIR__ . '/../smarty/compile/'//编译目录
  • $smarty->config_dir = __DIR__ . '/../smarty/configs/'; //配置目录
  • $smarty->cache_dir = __DIR__ . '/../smarty/cache/'//缓存目录
  • $list = range('A', 'D');
  • $smarty->assign("list", $list);
  • $smarty->assign("name", "zhezhao");
  • $smarty->display('index.html');
  • 模板文件index.html

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • <html>
  • <head>
  •   <title></title>
  • </head>
  • <body>
  •   <p><h1><{$name}></h1></p>
  •   <{foreach $list as $k=>$v }>
  •     <p><h1><{$k}> : <{$v}></h1></p>
  •   <{/foreach}>
  • </body>
  • </html>
  • 上述方法的优点是使用起来配置比较简单,缺点也是显而易见的,我们controller目录下可能有很多页面调用smarty模板,在每个页面都需要将上述方法配置一遍。

    解决方法有两种:

    将smarty模板的配置信息写到一个文件中,然后其他页面可以通过包含该文件使用smarty对象。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • require '../smarty/Smarty.class.php';
  • $smarty = new Smarty;
  • $smarty->debugging = false;  //开启debug模式
  • $smarty->caching = true;  //开启缓存
  • $smarty->cache_lifetime = 120; //缓存时间
  • $smarty->left_delimiter = '<{'//左定界符
  • $smarty->right_delimiter = '}>'//右定界符
  • $smarty->template_dir = __DIR__.'/../view/'//视图目录
  • $smarty->compile_dir = __DIR__ . '/../smarty/compile/'//编译目录
  • $smarty->config_dir = __DIR__ . '/../smarty/configs/'; //配置目录
  • $smarty->cache_dir = __DIR__ . '/../smarty/cache/'//缓存目录
  • 我们自己编写一个类,继承自Smarty类,然后将配置信息写在构造函数中。

    我们编写mySmarty类

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • <?php
  • require '../smarty/Smarty.class.php';
  • class mySmarty extends Smarty{
  •   public function __construct(array $options = array()){
  •     parent::__construct($options);
  •     $this->debugging = false; //开启debug模式
  •     $this->caching = true; //开启缓存
  •     $this->cache_lifetime = 120;  //缓存时间
  •     $this->left_delimiter = '<{'; //左定界符
  •     $this->right_delimiter = '}>'; //右定界符
  •     $this->setTemplateDir(__DIR__.'/../view/');  //视图目录
  •     $this->setCompileDir(__DIR__ . '/../smarty/compile/'); //编译目录
  •     $this->setConfigDir(__DIR__ . '/../smarty/configs/'); //配置目录
  •     $this->setCacheDir(__DIR__ . '/../smarty/cache/'); //缓存目录
  •   }
  • }
  • 此时,controller里面的index.php代码可优化为:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • <?php
  • require 'mySmarty.php';
  • $smarty = new mySmarty;
  • $list = range('A', 'D');
  • $smarty->assign("list", $list);
  • $smarty->assign("name", "zhezhao");
  • $smarty->display('index.html');
  • 最后送上福利:smarty3 chm官方文档

    希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。

    原文链接:https://blog.csdn.net/koastal/article/details/51423125

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐