ThinkPHP中的模板引擎和视图层
来源:互联网 发布:acrobat for mac 网盘 编辑:程序博客网 时间:2024/05/26 12:57
1,常用的模板引擎语法:
(1)变量输出
{变量名}
还可以使用系统变量:
{$Thinkphp.get.变量名}
系统变量分为几类:
1,包括 session cookie server get post
$Think.server.REMOTE_ADDR
2,
3,特殊变量
ThinkPHP内部定义的变量
2,对变量使用函数
{变量名|函数1=参数1,参数2|函数2=参数1,参数2}
其中###代替当前变量的参数位置,如果当前变量或者函数的执行结果是下一个函数的第一个参数时,可以不写
(3)包含文件
使用include标签包含外部的文件
<include file=’’>
1,file的值和display时的一样,
2,include是闭合标签,要以/结尾
3,子模板中可以使用assign过来的变量
通常加载的公共的头部信息,或者尾部
导入文件
<import type=’js’ file=’’
import 的默认起始路径是Public
display()
1, display(‘操作名’) 在当前模块下找操作名
2,display(‘模块:操作’) 显示其他模块的操作名
3,display(‘分组:模块:操作’) 显示不同分组下的不同模块的操作
4,display(‘模板文件的全路径’)
(4)if判断
(6)volist标签
比foreach循环更复杂
(7)if
<if condition=””>
<elseif condition=”条件”/>
<else/>
</if>
定界符冲突的情况,我们的模板只解析{ 紧跟$的情况,因此在js代码中,即使不修改定界符也没问题
thinkPHP给我们提供的模板引擎,内置的模板引擎----ThinkTemplate
它的执行效率要高于市面上的其他模板引擎,他引用了一些smarty的模板引擎的东西以及其他模板引擎的东西
如果从控制器分配对象,在模板中使用 : 获得
比较标签
<比较标签 name=”变量” value=”值”>内容</比较标签>
引入子模板:
将footer.html 和 header.html 放到Public目录中
ThinkPHP如何使用其他的模板引擎:
比如我们之前学的smarty,
1,加载smarty的类文件,在ThinkPHP框架中,已经将此工作做好
/Extend/Vendor
2,将smarty融入到ThinkPHP中去
修改配置文件
‘TMPL_ENGINE_TYPE’ => ‘Smarty’
如何实现的呢?
模板引擎驱动的概念:
配置系统:
基于配置文件的
项目的配置文件在项目的Conf/conf.php
如果采用了分组的话,配置也可以分组进行
由于使用了项目的模块分组,控制器分组,模板分组,配置也可以分组进行
在Config目录存在 Admin/Config.php Home/Config.php
规则:如果组配置文件与通用配置文件 冲突的话,以当前组的为准。
如何手动获得配置文件中配置项的值
使用全局函数 C()获得
此函数有两个功能:
1,获得;2,配置
获得的是Home的配置变量的值,也就是说,如果分组的配置文件和项目的配置文件冲突,以分组的配置为准
缓存系统:
任何真实的项目都离不开缓存
缓存分为两大类:
1,数据缓存
将数据保存到某个介质中,这个介质包括:
File,Memcache,Db...
在ThinkPHP中利用Cache类完成 数据缓存的处理
不同的介质通过不同的操作对象来完成,也就是说通过cache类获得不同的操作对象,来完成将数据保存在不同的介质中
例如:
如果想将数据保存在File(文件)中,只需要调用Cache类的getInstance(‘File’)方法
同理:
像这个cache类,它的作用就是根据不同的参数,生成不同的对象,具有这种功能的类就称之为工厂模式
cache类保存在ThinkPHP/Lib/Core/Cache.class.php
类的方法可以通过当前对象访问,也可以通过类来访问
数据的增删改查:
PHP的序列化是什么意思呢?
一个描述PHP数据的函数,返回值是一个字符串,有的时候为了将数据转化为字符串存起来,但是还要保持数据原有的结构和内容,就可以使用这个函数:
数据存在哪里呢?
增:
第三个参数为设置缓存的有效期:时间为秒
删:
改:
查:
如何设置缓存的有效期?
2,如何做页面缓存
将模板的结果缓存起来
利用ThinkPHP的配置实现:
1,是否开启缓存
2,哪些页面需要缓存
一般是前台需要缓存,所以配置应该写到Home的缓存文件中
必须要设定规则,否则即使开启了也不会缓存
规则是一个数组:规定了哪些控制器,哪些动作需要缓存,缓存文件的保存名称,缓存文件的有效期
'tmp' => array('{:action}',1000),
通过id,单模板多缓存
命名的规则:可以使用 模块名 动作名 get参数等。。可以做单模板多缓存
3,局部不缓存
可以利用javascript,ajax实现
其实是将javascript代码缓存起来
- ThinkPHP中的模板引擎和视图层
- ThinkPHP中的模板引擎和视图层
- 视图层以及模板引擎
- ThinkPHP 模板视图
- Thinkphp模板引擎(疑问)
- 我对View层的视图模板解析引擎的认识(Java&PHP)
- Java集成thymeleaf视图层模板引擎构建web项目实例讲解(附项目源码)
- ejs的视图模板引擎
- Jeecms6中后台控制层Action如何将值传入前台视图层模板中的?
- ThinkPHP内置模板引擎的使用方法总结
- thinkPHP内置模板引擎TagLibHtml.class.php
- ThinkPHP框架使用Smarty模板引擎
- ThinkPHP框架使用Smarty模板引擎
- MVC、ThinkPHP、Yii框架、Smarty模板引擎
- thinkphp view层中的循环
- php学习笔记-3.thinkphp表的join和模板引擎输出
- thinkphp 视图和关联模型
- thinkphp模板中的随机数方法
- java窗口
- CDC,CClientDC,CPaintDC,CWindowDC 比较区别
- 机器学习领域的大家
- Stunnel 的配置和使用
- cocos2d-x 菜鸟学习笔记九(引用plist快速生成动画精灵)
- ThinkPHP中的模板引擎和视图层
- 第七章 Hibernate 常用配置(hibernate.cfg.xml)
- Linux下简单的日志功能实现(C语言)
- android学习计划
- POJ 2482:Stars in Your Window
- 第八章 ID主键生成策略
- U-Boot(合集)
- 控制器层的相关操作以及ajax
- PGA SGA db_cache 大小如何设置调优