Smarty2和Smarty3在实现上差不多,但是在smarty2升级到smarty3的时候还是要注意些许不同。
下面是已知的和smarty2不兼容的地方

== 语法 ==

Smarty 3 API有些方面进行了更新。一些Smarty 2 API调用需要更新以便符合Smarty 3。你可能会得到提示,推荐你使用新的语法。可以查看Smarty 3附带的 README 文件获得更多信息。
} 语法总是让人迷惑,加上@符号说明修饰符作用于数组而不是作用于数组的每个元素。通常你总是想让这个修饰符作用于这个变量而不必考虑它的类型。在 Smarty 3中,{$array|mod} 和 }
是等同的。去掉@符号,修饰符仍然作用于数组。如果你想修饰符作用于数据元素,你必须在模板中循环数组,或者使用自定义修饰符以支持数组遍历。
大多smrty函数已经在需要的地方例如{html_options}进行了转义。

== PHP版本 ==

Smarty 3 仅支持PHP 5. 在PHP 4将不能正常工作。

== {php} 标记 ==
Smarty 3 默认关闭 {php} 标记支持,不推荐使用。你可以通过设置$smarty->allow_php_tag=true来启用。

{php} 块中的变量不再与同一页中的其它{php}块共享作用域,因此在使用的时候要注意。

== 定界符和空格 ==
Smarty 定界符 {} 有空格包围是不再认为是Smarty标记。因此,{ foo } 将被Smarty忽略,但是 {foo} 将被识别。这个变化使得 Javascript/CSS更容易在smarty中使用,而没有必要使用 {literal}.
这个特性可以通过设置 $smarty->auto_literal = false; 禁用。

== 未用引号的字符串 ==
Smarty 2 对于参数中未用引号括起来的字符串有点宽容(并且模棱两可)。Smarty 3 比较严格。对于不包含特殊字符(A-Za-z0-9_之外的字符)的字符串仍然可以不用引号括起来。

比如下面例子中文件名就必须用引号括起来。

view plain

{assign var=foo value=baz} <-- works ok  {include file="path/foo.tpl"} <-- needs quotes!

== 扩展Smarty类 ==
Smarty 3 遵循PHP5标准构造规则。扩展Smarty类的时候,使用 __construct() 作为类的构造函数的名称。如果你实现自己的构造函数,一定要先调用 parent::__construct()

view plain

class MySmarty extends Smarty {  function __construct() {  parent::__construct();  // your initialization code goes here  }  }

== 自动加载器 ==
Smarty 用spl_autoload_register函数 实现了它自己的自动加载器。如果想在自己的应用中使用自动加载器,就必须使用此方法注册。
使用 __autoload() 将失败。 这是PHP5标准自动加载函数。可以查看
http://us3.php.net/manual/en/function.spl-autoload-register.php

== 插件文件名 ==
自从Smarty 3使用默认的spl自动加载器,就要求插件文件名使用小写字母。Smarty 2 允许使用大小写混合插件名,你必须重命名以用于smarty 3.

== Smarty特殊变量作用域 ==
在Smarty 2中Smarty特殊变量 $smarty.section.* and $smarty.foreach.*
拥有全局作用域。如果子模板中含有同名的循环,就会覆盖父模板中的值。

在Smarty 3中这些特殊变量将只作用于定义循环所在的模板。若是需要在子模板中使用,就不得不使用参数传递。
<source lang="smarty">
{include file="path/foo.tpl" index=$smarty.section.foo.index}
</source>

== SMARTY_RESOURCE_CHAR_SET ==
Smarty 3 设置常量 SMARTY_RESOURCE_CHAR_SET 为 utf-8作为模版文件的默认字符集. 
只是作为像 escape 等函数的默认字符集. 如果你的模板使用其它字符集, 就必须自己定义这个常量.

== trigger_error()
API 函数 trigger_error() 已被移除。

== Smarty 常量 ==
下面这些常量 
SMARTY_PHP_PASSTHRU
SMARTY_PHP_QUOTE
SMARTY_PHP_REMOVE
SMARTY_PHP_ALLOW
已被类常量替代
Smarty::PHP_PASSTHRU
Smarty::PHP_QUOTE
Smarty::PHP_REMOVE
Smarty::PHP_ALLOW

转载于:https://www.cnblogs.com/chyong168/archive/2011/11/20/2256076.html

Smarty2至Smarty3升级指南相关推荐

  1. smarty2 php,Smarty2至Smarty3升级指南.

    Smarty2和Smarty3在告终上差不多,然而在smarty2升级到smarty3的时候还是要当心些许不同. 下面是已知的和smarty2不接受的地方 == 语法 == Smarty 3 API有 ...

  2. PyTorch 0.4新版本 升级指南 no_grad

    PyTorch 0.4新版本 升级指南 [导读]今天大家比较关心的是PyTorch在GitHub发布0.4.0版本,专知成员Huaiwen详细讲解了PyTorch新版本的变动信息, 本次升级, 只做了 ...

  3. composer升级_Composer 使用姿势与 Lumen 升级指南

    Composer 使用姿势 这里主要说说 composer.json 和 composer.lock 文件的作用. composer.json composer.json 文件包含了项目的依赖和其它的 ...

  4. ie11java阻止_企业IT管理员IE11升级指南【10】—— 如何阻止IE11的安装

    企业IT管理员IE11升级指南 系列: 如何阻止IE11的安装 希望自行管理更新计划的企业和组织可以使用 IE11 Automatic Update Blocker Toolkit (自动更新拦截工具 ...

  5. 打算升级到 Monterey?我们为你准备了一份 macOS 安全升级指南

    2021 年 10 月 26 日,期待已久的 macOS 12 正式版终于发布.苹果公司选用加州风景秀丽的小城 Monterey 作为此版本的名字.在外观上, macOS Monterey 并没有大的 ...

  6. [转] PyTorch 0.4新版本 升级指南 no_grad

    转自PyTorch 0.4新版本 升级指南,博主为ShellCollector. PyTorch 0.4新版本 升级指南 PyTorch 终于从0.3.1升级到0.4.0了, 首先引入眼帘的,是PyT ...

  7. 005-Sencha Cmd 5升级指南

    Sencha Cmd 5升级指南 本指南旨在帮助开发人员使用Sencha Cmd从ExtJS 4.1.1 a+升级到ExtJS 5.0.x. 尽管在这个版本中有一些重要的变化,但是我们已经尝试使升级过 ...

  8. 杜比dss200服务器系统升级包434,杜比数字影院系统DSS200软件升级指南(初稿).pdf

    杜比数字影院系统DSS200软件升级指南(初稿).pdf 杜比数字影院系统软件升级指南 升级注意事项 : 1.升级将导致所有影片密钥丢失,请先做好备份 2 .升级前请先断开 DSP200 和 CAT. ...

  9. 2021 最新 Cloudera 大数据平台 CDP 升级指南白皮书完整版开放下载!(中文版)...

    1 大数据平台 CDH/HDP 与 CDP 熟悉大数据业界的小伙伴们都知道,Cloudera 在跟 HortonWorks 合并后,便推出了新一代大数据平台 CDP,并正在逐步停止对原有的大数据平台 ...

最新文章

  1. Hibernate 注解学习
  2. 一套简约漂亮的响应式博客园主题皮肤分享给你们(一)
  3. uboot中的中断macro宏
  4. 【PC工具】200324更新百度网盘下载工具——最新百度网盘下载工具使用方法及注意事项...
  5. 左神算法:复制含有随机指针节点的链表 / 复杂链表的复制(Java版本)
  6. Git 切换提交历史节点
  7. ORACLE SQL获取时间字段
  8. 实现tomcat的https单向认证及双向认证
  9. 给爱设计的你,一个理由爱上(和使用)渐变素材的理由
  10. cts测试的一些总结
  11. iOS_SN_详解沙河(转载)
  12. iBATIS的自定义类型处理器TypeHandlerCallback解决乱码
  13. QT creator 编辑器快捷键
  14. 在python语言中、写文件的操作是_Python语言之详解文件操作
  15. 【机器学习】数据处理详解
  16. Linux中常用的正则表达式
  17. 微信H5活动抽奖单页面模板源码
  18. 尚德机构季报图解:净利1.79亿 实现连续四个季度盈利
  19. 类似于萝卜书摘的书摘app推荐
  20. Vue 记账凭证模块组件

热门文章

  1. 什么是堆(Heap)
  2. 解决:ubuntu18.xx 更新nvidia驱动后,重新启动后黑屏
  3. visual studio 2019安装配置可编写c/c++语言的IDE环境
  4. 汇编语言练习_1_数字分解_显示
  5. MySQL为其他用户创建数据库_MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限...
  6. spring的InitializingBean介绍
  7. HTML显示xml中的CDATA内容
  8. Java Servlet和JSP教程
  9. jdbc oracle 连接串
  10. pytest 15 fixture之autouse=True