smarty模板的使用方法实例分析
时间:2022-07-27
本文章向大家介绍smarty模板的使用方法实例分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了smarty模板的使用方法。分享给大家供大家参考,具体如下:
这里以smarty3为例
首先, 在官网下载smarty3模板文件,然后解压。
在解压之后的文件夹中,libs是smarty模板的核心文件,demo里面有示例程序。
我们把libs文件夹复制到我们的工作目录,然后重命名为smarty。
假设我们在controller目录下的index.php中使用smarty模板。
index.php
<?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
<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对象。
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类
<?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代码可优化为:
<?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相关内容感兴趣的读者可查看本站专题:《smarty模板入门基础教程》、《PHP模板技术总结》、《PHP基于pdo操作数据库技巧总结》、《PHP运算与运算符用法总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于smarty模板的PHP程序设计有所帮助。
- pc端与移动端的事件总结
- 技术分享 | Apache Kafka下载与安装启动
- JavaScript数组操作总结
- 初识Shiro
- 在网页里点击链接,直接打开app的方法
- 常用算法比较,js实现
- Exploiting Jolokia Agent with Java EE Servers
- AngularJS数据源的多种获取方式汇总
- 跨站的艺术-XSS入门与介绍
- 堆排序
- 两个元素定位,要求子元素垂直居中
- 在Spring Boot框架下使用WebSocket实现消息推送
- Linux上安装Zookeeper以及一些注意事项
- Nginx+Tomcat搭建集群,Spring Session+Redis实现Session共享
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Dynamic Programming - 62. Unique Paths
- Dynamic Programming - 70. Climbing Stairs
- LinkedList - 23. Merge k Sorted Lists
- LinkedList - 86. Partition List
- LinkedList - 148. Sort List
- LinkedList - 61. Rotate List
- LinkedList - 143. Reorder List
- LinkedList - 160. Intersection of Two Linked Lists
- LinkedList - 21. Merge Two Sorted Lists
- LinkedList - 82. Remove Duplicates from Sorted List II
- LinkedList - 203. Remove Linked List Elements
- LinkedList - 83. Remove Duplicates from Sorted List
- LinkedList - 19. Remove Nth Node From End of List
- LinkedList - 92. Reverse Linked List II
- LinkedList - 328. Odd Even Linked List