ThinkPHP1.docx
《ThinkPHP1.docx》由会员分享,可在线阅读,更多相关《ThinkPHP1.docx(15页珍藏版)》请在冰豆网上搜索。
ThinkPHP1
ThinkPHP
(一)
回顾
1、变量
(1)普通变量
声明:
a)$smarty->assign();
b){assignvar='变量名'value='值'}
取值:
{$变量名}
(2)保留变量
$smarty
作用:
(1)可以获取用户请求的变量
{$smarty.get.变量名}
{$smarty.post.变量名}
{$smarty.requset.变量名}
(2)获取回话和cookie
{$smarty.session.变量名}
{$smarty.cookies.变量名}
(3)获取PHP的环境变量
{$smarty.server.变量名}
(4)常亮
{$smarty.const.变量名}
(5)其他
{$smarty.now}
{$smarty.version}
{$smarty.ldelim}
{$smarty.rdelim}
(3)配置变量
定义
a)配置变量放在configs目录下
b)可以定义全局和局部变量(节),用[]表示节
c)先定义全局变量,在定义局部变量
host=127.0.0.1
[web1]
host=192.168.0.2
取值
a)导入配置文件{config_loadfile='地址'section='节名称'}
b){#配置变量名#}
2、数组
Smarty中数组的声明和PHP是一样的,在模板中取值的方法有两个
{数组[下标]}
{数组.下标}
3、foreach循环
(1)语法:
{foreach数组名as$k=>$v}
{foreachelse}
没有数组输出
{/foreach}
(2)foreach的内部关键字
值变量@iteration从1开始增长
值变量@index从0开始增长
值变量@first第一行就返回1
值变量@last最后一行就返回1
值变量@total一共有多少条记录
值变量@show如果数组可以变量就返回true,否则返回false。
4、section循环
(1)语法:
{sectionname='自定义变量名称'loop='被遍历的数组'}
{被遍历的数组[自定义变量名称]}
{sctionelse}
没有数组输出
{/section}
(2)内部关键字
{$smarty.section.自定义变量名称.iteration}
{$smarty.section.自定义变量名称.index}
{$smarty.section.自定义变量名称.first}
{$smarty.section.自定义变量名称.last}
注意:
section循环只能变量索引数组,不能变量关联数组
5、判断语句
{if条件}
{elseif条件}
{else}
{/if}
6、smary的运算符和PHP运算符是一样的
7、循环语法
{for($i=1to10step2)}
{/for}
{while条件}
{/while}
8、
{html_checkboxesname=''output=''values=''selected=''}
可以换成
{html_checkboxesname=''options=''selected=''}
{html_radios}
{html_options}和{html_checkboxes}用法一样
9、把HTML和smarty结合起来
10、布局
(1)通过{blockname=''}这个标签来实现布局
(2)一个布局文件可以有多个block
(3)在子页面中通过{extendsfile='布局文件的路径'}继承布局文件
(4)通过名字来替换布局文件中的block
11、包含文件
{includefile='包含文件的地址'}
注意:
如果公共部分多用布局文件
如果公共部分少用包含文件。
12、变量修饰器
时间:
{$smarty.now|data_format:
"%Y-%m-%d%H:
%M:
%S"}
转换大写{$str|upper}
转换小写{$str|lower}
字符串截取{$str|truncate:
10:
'...':
true:
true}
13、缓存:
(1)开启缓存
$smarty->caching=1|true;
缓存存放在cache文件夹下。
(2)缓存更新
a)删除对应的缓存文件,
b)修改模板文件、布局文件,包含文件,配置文件缓存会自动更新
c)强制更新$smarty->force_cache=true;
d)设置缓存的过期时间。
缓存的生命周期
语法:
$smarty->cache_lifetime=-1|0|N
-1
缓存永久不失效
0
立即失效
N
缓存存在N秒
默认情况下,缓存是3600秒
cache=1和cache=2的区别
$smarty->caching=1;根据$smarty->cache_lifetime来计算过期时间
$smarty->caching=2;更改缓存文件中的”cache_lifetime“来计算过期时间
单模板多页面缓存
局部不缓存技术
缓存集合
清除缓存
例题(Smarty继承到项目中)
1、第一步
2、新建编译文件存放的路径
3、定义编译后的路径
4、
5、调用Smarty
6、
ThinkPHP
按照MVC模式开发的一个框架,也叫TP框架。
优点:
1.快速,稳定的搭建系统程序
2.可以使开发人员精力集中在业务逻辑上,不需要关心程序的底层架构
3.可以节省大量的代码,后期的升级、维护、优化十分方便
4.有利于团队的代码风格统一。
相关的一些框架
1、zendframework
zend公司开发的官方的框架,功能很强大,重量级框架。
2、Yii
国人自己开发的重量级框架,该框架的特点就是代码的可重用性非常好。
3、CI(codeIgniter)
轻量级的框架,
4、cakePHP
外国的PHP开发框架
5、ThinkPHP
这是国人开发的,免费、开源的,简单的、面向对象的,轻量级的PHP框架。
ThinkPHP下载
ThinkPHP的结构如下:
在ThinkPHP\Library\Think文件夹中,几个重要的文件
1、App.class.php框架核心类文件
2、Think.class.php每次请求都要执行的类
3、Controller.class.php控制器的父类
4、Model.class.php模型的父类
5、View.class.php试图的父类
搭建ThinkPHP的环境
在站点下新建index.php,代码如下:
运行后出现欢迎界面,在说明系统自动生成了ThinkPHP的项目目录,并写入了初始的控制器和方法。
自动生成的目录如下:
创建控制器
1.控制器存放在Controller文件夹中
2.命名规范:
控制器的名称+Controller.class.php
3.类名和文件的名称要一致
4.类名用帕斯卡命名法
5.尽量区分大小写,windows不区分大小写,但Linux中区分
6.ThinkPHP默认的编码是UTF-8的。
7.如果地址中没有写控制器,这默认调用Index控制器,如果没有写方法,则默认调用index方法
命名法:
1、帕斯卡命名法:
首字母大写UserNameMyNameIsLiping
2、骆驼命名法:
userName_user_name
3、匈牙利命名法:
前缀(类别)+名字radSextxtUsernameiIengthoStu
ThinkPHP的路由
1、普通模式
2、pathinfo模式
http:
//网址/入口文件(index.php)/分组(平台)/控制器/方法
比如:
http:
//localhost/index.php/home/index/index
3、rewrite()重写模式
4、兼容模式
参数s=/分组/控制器/方法。
ThinkPHP中,默认使用pathinfo模式。
定义和调用TP的模板
所有的模板都要放在view文件夹下。
规则:
一个控制器对应一个文件夹,一个方法对应一个文件
TP模板的调用
TP系统常量
项目后台的搭建
1、在Application文件夹下新建一个Admin文件夹,在Admin文件夹中新建Controller和View文件夹。
2、在Admin\Controller控制器中新建一个LoginController.class.php页面,代码如下:
3、在login.html中更改css、js、img的路径
表单提交地址更改
4、在Admin\Controller文件夹中新建ManagerClass.php文件
5、对应的index页面中更改如下:
6、注意更改index、head、left、right页面中的路径
模板中常量字符串替换