1.概述:

官方:Smarty是一个PHP的模板引擎。业务逻辑和显示逻辑分离,是Smarty的一个设计理念。

啥意思?就是准备数据,给smarty显示。smarty里面写好html,css,js等前端样式,给个占位符:如<h1>{$a}<h1/>,在业务代码把$a的值塞进去显示就行了。

2.特性:

非常快速。比PHP内嵌到HTML中的做法要有效率高

支持条件判断语句

内置很多方法,可以调用

3.具体用法参考官网:

https://www.smarty.net/docs/zh_CN/

4.适用场景

非前后分离模式。企业一些老系统采用的不是前后分离模式,需要维护还是得会。

个人觉得,smarty使用的人逐渐少了,做前端还是得向vue,react,angular上面靠。

开发逐渐都要以组件化的思维。前端是,后端服务也是,现在流行的微服务实际上也是以组件化的思维,讲究组件复用。当然如果系统业务比较少,没必要搞分治,微服务这套了。

5.使用:

  (1).建立php文件:
    包含smarty类文件  include(Smarty/Smarty.class.php);
    实例化smarty对象  $smarty = new Smarty();
    通过smarty对象定义模板文件保存位置(及其它属性)
    为模板定义变量 或为模板传数据(一般是从数据库中查询的数据)
    指定调用的html文件即模板文件

  (2).创建模板文件:
      在模板文件中显示数据

第一步、定义php文件
<?php
//1、包含Smarty类文件
require("smarty/Smarty.class.php");//2、实例化Smarty类
$smarty = new Smarty();//设置各个目录的路径,这里是安装的重点
$smarty->template_dir ="./templates";  //模板存放位置
$smarty->compile_dir ="smarty/templates/templates_c"; //编译路径
$smarty->config_dir = "smarty/templates/config";  //配置文件存放位置
configs
$smarty->cache_dir ="smarty/templates/cache"; //缓存目录存放位置
//smarty模板有高速缓存的功能,如果这里是true的话即打开caching,但是    会造成网页不立即更新的问题,当然也可以通过其他的办法解决
$smarty->caching = false;
$smarty->left_delimiter = "{#"; //重新定义边界,因为默认边界“{}“符,在html    页面中嵌入js脚本文件编写代码段时使用的就是”{}“符,自定义边界符还可以    是<{ }>, {/ /} 等
$smarty->right_delimiter = "#}";
$hello = "Hello World!";//赋值
$smarty->assign("hello",$hello);//引用模板文件 为模板传值
$smarty->display('index.tpl');   //调用模板
?>
执行index.php就能看到Hello World!了

(3).基本语法
1)    注释
语法:{* 注释内容 *}

2)    assign()
注解:给模板进行变量赋值;

3)  display()
注解:显示模板;
4)    fetch()
注解:获得模板编译输出后的结果,类型为字符串,等同于  echo display();

(4).变量来的来源
1)    PHP分配
2)    配置文件
① 引入配置文件
② 使用配置文件中变量
`注意:配置文件中(cfg.php)的写法如下

扩展:smarty 中的文件包含写法:
3)    保留变量

(5).变量调节器 lower
1)    date_format
2)    Default
注解:当变量是unset或者empty的字符串时,默认值将显示。

(6).内建函数
1)    config_load
注解:{config_load}用于从配置文件中 加载配置变量#variables#。 
(参考demo如上配置)

2)    foreach
注解:建议采用这种(smarty 3.0)写法
3)    include
注解:{include}用于载入其他模板到当前模板中
(参考demo如上配置)

4)    if else if   手册自己做
5)    literal
注解:{literal}可以让一个模板区域的字符原样输出。
6)    php
重要说明
Smarty已经废弃{php}标签,强烈建议不要使用。

php基础(09):php模板引擎Smarty相关推荐

  1. php模板引擎循环start,PHP模板引擎Smarty内建函数section,sectionelse用法详解

    本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法.分享给大家供大家参考,具体如下: section 是 Smarty 模板中除了 foreach 以外的另一种 ...

  2. PHP模板引擎smarty详细介绍

    篇文章主要介绍了PHP模板引擎smarty详细介绍,本文讲解了什么是smarty.smarty优点.不适合使用smarty的地方.smarty目录结构及版本,需要的朋友可以参考下 /* 一.什么是sm ...

  3. PHP模板引擎Smarty内建函数section,sectionelse用法详解

    本文实例讲述了PHP模板引擎Smarty内建函数section,sectionelse用法.分享给大家供大家参考,具体如下: section 是 Smarty 模板中除了 foreach 以外的另一种 ...

  4. php smarty 模版引擎,php模板引擎Smarty入门 - 小俊学习网

    如果要实现前端模板和后台逻辑业务处理相分离,MVC的思想开发网站的话,可使用模板引擎来完成.来学习php模板引擎Smarty,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法. 1. 什么是模板 ...

  5. php smarty 原理,php模板原理PHP模板引擎smarty模板原理浅谈

    mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有ph ...

  6. php模板引擎smarty案例下载,PHP – Smarty模板引擎 – Download下载 – 2.6.22 | 学步园...

    PHP - Smarty模板引擎 - Download下载 - 2.6.22 [PHP - Smarty模板引擎 - 官方网站] [PHP - Smarty模板引擎 - 下载地址] http://sm ...

  7. php模板引擎smarty,[PHP]模板引擎Smarty介绍

    三.可能遇到的问题 在SMARTY的 官方网站上,有详尽的用户手册,可以选择在线HTML和PDF格式的版本.这里就不再涉及手册上已有的内容,只是把初次使用可能遇到的问题做个解释. 第一个问题就很要命: ...

  8. PHP模板引擎Smarty概述

    PHPChina资讯:Smarty是由Monte Ohrt和Andrei Zmievski写出的PHP模板引擎.它不同于其他的模板引擎,比如FastTemplate或者patTemplate,其中主要 ...

  9. PHP 模板引擎SMARTY 原理

    一.MVC需要模板 MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代表了"模型"."视图"和"控制",目的 ...

最新文章

  1. 浅析企业网站应该如何选择适合自己的服务器?
  2. Tarjan算法 (强联通分量 割点 割边)
  3. c语言中的所有代码大全,C语言库函数代码大全
  4. 查看已有设置_腾讯企点呼叫中心如何查看企点电话产生的数据报表?
  5. 面试常见的js简单算法
  6. css003 选择器:明确设置哪些样式
  7. PCI及PCIe基本知识
  8. Websphere8.5.5安装教程
  9. php 在文本域中添加qq表情 createelement,仿微信在对话框文字中插入Emoji表情包
  10. ASP.NET 5 Target framework dnx451 and dnxcore50
  11. 开发EduSoho v8.7.10 本地播放视频超时或者快进后网络错误导致视频下载中途失败。鉴权播放次数问题
  12. Zemax-偏振、膜层和散射
  13. 从事嵌入式软件开发的好处是什么
  14. 教你如何用PCtoLCD2002生成字模以及软件的下载
  15. 不知道PDF转PPT转换器哪个好用?分享三个简单好用的办公用具
  16. 五十个SQL基本语句,来看看你的SQL语言过关了吗?
  17. Go语言中的字符串拼接方法介绍
  18. “借给别人5000块,我就能一口口吃掉他一套房,打官司也告不倒我!”
  19. numpy实现高等代数矩阵的求解过程
  20. 趣谈java工厂模式

热门文章

  1. DPDK学习(一)DPDK简介
  2. 国外问卷调查应如何起步看完绝对要收藏
  3. 快递物流查询接口API,使用Jquery的ajax跨域实现根据单号查询物流跟踪的详细信息
  4. xftp/xshell中文乱码
  5. 关于Hibernate多对多关联关系的更新问题。
  6. 盘点:2014,那些与我们告别的纸媒
  7. java流程图表示输入 输出_Java IO基础总结
  8. GEE快速获取大范围无云10米遥感影像
  9. 「PHP基础知识」使用数组保存数据
  10. switch循环的使用