![Twig模板引擎使用笔记.docx_第1页](http://file.renrendoc.com/FileRoot1/2019-2/14/df6a9b62-975b-4a30-a552-d6970b5654fa/df6a9b62-975b-4a30-a552-d6970b5654fa1.gif)
![Twig模板引擎使用笔记.docx_第2页](http://file.renrendoc.com/FileRoot1/2019-2/14/df6a9b62-975b-4a30-a552-d6970b5654fa/df6a9b62-975b-4a30-a552-d6970b5654fa2.gif)
![Twig模板引擎使用笔记.docx_第3页](http://file.renrendoc.com/FileRoot1/2019-2/14/df6a9b62-975b-4a30-a552-d6970b5654fa/df6a9b62-975b-4a30-a552-d6970b5654fa3.gif)
![Twig模板引擎使用笔记.docx_第4页](http://file.renrendoc.com/FileRoot1/2019-2/14/df6a9b62-975b-4a30-a552-d6970b5654fa/df6a9b62-975b-4a30-a552-d6970b5654fa4.gif)
![Twig模板引擎使用笔记.docx_第5页](http://file.renrendoc.com/FileRoot1/2019-2/14/df6a9b62-975b-4a30-a552-d6970b5654fa/df6a9b62-975b-4a30-a552-d6970b5654fa5.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Twig模板引擎使用笔记安装配置1. 新建一个目录 libs 2. 在该目录下新建文件 composer.json,往该文件写入以下内容: 3. 4. require: 5. twig/twig: 1.*6. 7. 8. 在 libs 目录上执行 composer install 安装 Twig(前提是已安装 Composer 包管理器) 9. 在 libs 上级目录新建三个文件夹:templates、templates_c、web,其中 templates 用来存放模板文件,templates_c 用来存放编译缓存文件,web 用来存放 PHP 源文件 10. 在 libs 上级目录新建文件 MyTwig.php 公共文件,内容如下: 11. / 引用 Composer 自动加载文件12. require_once dirname(_FILE_)./libs/vendor/autoload.php;13.14. / 注册 Twig 加载器15. Twig_Autoloader:register();16.17. / 设置基本的配置项18. $loader = new Twig_Loader_Filesystem(dirname(_FILE_)./templates);19. $twig = new Twig_Environment($loader, array(20. cache = dirname(_FILE_)./templates_c,21. auto_reload = true22. );23. 后续使用时,只需让 web 目录下的 PHP 文件引用该公共文件,且在 templates 目录下放置好对应的模板即可,引用公共文件的语句为:require_once dirname(dirname(_FILE_)./MyTwig.php; 24. 基本的模板渲染语句:echo $twig-render(abc.html.twig, array(name = Ruchee); 可用符号= != = 去除左边的空白、 数据 - = 去除右边的空白、- 数据 - = 去除两边的空白 变量可使用 % set 变量名=变量值 % 声明变量,也可写成 % set 变量名 % 变量值 % endset % PHP 中非关联数组被映射成 元素1, 元素2, .,关联数组则被映射成 键1: 值1, 键2: 值2, . 数据统一用 foo.bar 的形式表示,如果 bar 是形如 my-name 的名字,则需写成 attribute(foo, my-name),下面是 Twig 对 foo.bar 的解析顺序: 1. 当成数组的元素 foobar 2. 当成对象的属性 foo.bar 3. 当成对象的方法 foo.bar() 4. 调用对象的 get 方法 foo.getBar() 5. 调用对象的 is 方法 foo.isBar() 6. 以上都没匹配上则返回 null 几个内建的全局变量 _self:当前模板的引用 _context:当前上下文的引用 _charset:当前字符集设置的引用 测试语句 三元运算符。如 ? a : b = b xxx is yyy xxx is not yyy 控制结构 % if aaa % xxx % elseif bbb % yyy % else % zzz:判断语句 % for % xxx % endfor %:迭代变量 % do %:没什么其他含义,% do 1+2 % 等同于 1+2 % flush %:刷新输出缓冲,等同于 flush % include %:包含模板 % extends %:扩展模板 % embed % xxx % endembed %:包含模板并扩展该模板的内容,相当于 include 和 extends 的结合体 % use %:包含模板,近似于多重继承 % from aaa import bbb as ccc %:从指定模板导入宏并设置别名 % macro % xxx % endmacro %:定义宏以便多次调用,与定义 PHP 函数无异 % sandbox % % include xxx % % endsandbox %:对导入的模板指定沙箱模式,只对 include 语句有效,只在沙箱模式已开启的情况下生效 % block xxx % 或 % block % xxx % endblock %:定义代码块或覆盖代码块 % set xxx % 或 % set % xxx % endset %:在模板内定义变量 % filter % xxx % endfilter %:多行过滤器 % spaceless % xxx % endspaceless %:去除 HTML 片段中的空格 % autoescape % xxx % endautoescape %:将字符串安全地处理成合法的指定数据 % verbatim % xxx % endverbatim %:阻止模板引擎的编译,是 raw 的新名字 内建过滤器过滤器用来修饰数据,各过滤器可以用竖线分隔进行链式调用,用括号传递参数 也可以将过滤器当成单独的函数来用,形式如下: % filter 过滤器名 %待处理的数据% endfilter % batch:将数组按指定的个数分割成更小的数组,可选的第二个参数用来在元素不够的情况下进行填充。如 1, 2, 3, 4, 5|batch(2, NoItem) = 1, 2, 3, 4, 5, NoItem date_modify:修改时间,常与 date 联用。如 |date_modify(+3 days)|date(Y-m-d) = 将当前时间加3天后显示 default:当所修饰的数据不存在或为空时,提供默认值。如 |default(Ruchee) = Ruchee escape:将字符串安全地处理成合法的指定数据,可简写为 e,支持多种转换模式,默认模式为 html,其他可选模式有 html_attr、js、css、url first:返回数组的第一个元素或字符串的第一个字符。如 a: 1, b: 2, c: 3|first = 1 last:返回数组的最后一个元素或字符串的最后一个字符。如 a: 1, b: 2, c: 3|last = 3 replace:替换一个字符串中的指定内容。如 %s1 love %s2|replace(%s1: Ruchee, %s2: Vim) = Ruchee love Vim raw:让数据在 autoescape 过滤器里失效 借用自PHP自带函数的过滤器 abs:取绝对值 nl2br:将字符串里的 n 替换成 join:将数组的各个元素按指定分隔符组成字符串 sort:对数组排序 trim:去除字符串首尾的指定字符,默认为空格 date:格式化时间,可处理与 strtotime 兼容的字符串,或 DateTime/DateInterval 的实例,可选的第二个参数用于指定时区,如果所修饰的数据为空则默认为当前时间 reverse:反转一个数组或字符串,在 array_reverse 的基础上增加了对字符串的处理 slice:截取数组或字符串的一部分,在 array_slice 的基础上增加了对字符串的处理 keys:将数组的全部键名提取成一个数组,等同于 array_keys merge:合并两数组,近似于 array_merge 。如 数组1|merge(数组2) length:返回数组元素的个数或字符串的长度,等同于 count 和 strlen 的结合体 capitalize:将字符串的首字母大写,等同于 ucfirst title:将字符串中每个单词的首字母大写,等同于 ucwords lower:将字符串所有字母全部变成小写,等同于 strtolower upper:将字符串所有字母全部变成大写,等同于 strtoupper split:将字符串分割成数组,等同于 str_split striptags:去除字符串中的 HTML/PHP 标记,等同于 strip_tags url_encode:编码链接字符串,等同于 urlencode json_encode:编码 JSON 格式,等同于 json_encode format:格式化一个字符串,近似于 printf 。如 My name is %s, and I love %s|format(Ruchee, Vim) = My name is Ruchee, and I love Vim number_format:格式化数值,等同于 number_format convert_encoding:编码转换,第一个参数指定转换后的编码,第二个参数指定转换前的编码,近似于 iconv 内建函数 even:是否为偶数 odd:是否为奇数 empty:是否为空 null:是否为 null defined:是否已定义 sameas:目标变量与指定值是否指向的是内存中的同一个地址,使用形式 if 变量值 is sameas(指定值) divisibleby:目标数值是否能够被指定值整除,使用形式 if 目标数值 divisibleby(指定值),其中指定值不能为 0 iterable:目标变量是否是数组或者是否可迭代,使用形式 if 变量值 is iterable attribute:动态获取变量属性值,两种使用形式为 attribute(数组, 元素名) 和 attribute(对象, 方法名, 可选参数) block:重复引用指定代码块,如 block(title) constant:从字符串或对象取得常量值 cycle:循环显示一个数组的元素,调用形式为 cycle(数组, 一个循环变量) date:格式化时间 du
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级银行业法律法规与综合能力-银行专业初级《法律法规》模考试卷2
- DB61T-鲜食甘薯机械化生产技术规范
- 法兰球阀项目效益评估报告
- 2025年煤制合成氨项目风险评估报告
- 精准把握需求促进产品创新
- 新版北师版一年级下册数学课件四 100以内数的认识复习
- 用户体验在办公电子产品设计中的实践与思考
- 2024年普通高等学校招生全国统一考试新课标Ⅱ英语试题含答案
- 2025年金属船只行业深度研究分析报告
- 2024年辐射污染治理市场分析现状
- 《工程勘察设计收费标准》(2002年修订本)
- 艾默生HipulseUPS操作手册
- 爱心树(绘本)
- NPI管理流程(精)
- 色卡 对照表 PANTONE-CMYK
- 深圳水管理体制改革的思考和建议
- 苏教版六年级上册计算题练习大全(经典)
- 内容讲义说明案例nxt pop trainning
- 消毒供应中心打包区教学要点 ppt课件
- 现代科学技术概论复习重点
- 年“职工书屋”示范点申报材料(2篇总结汇报报告参考)
评论
0/150
提交评论