thinkphp教学笔记剖析

上传人:今*** 文档编号:105862488 上传时间:2019-10-13 格式:DOC 页数:16 大小:275KB
返回 下载 相关 举报
thinkphp教学笔记剖析_第1页
第1页 / 共16页
thinkphp教学笔记剖析_第2页
第2页 / 共16页
thinkphp教学笔记剖析_第3页
第3页 / 共16页
thinkphp教学笔记剖析_第4页
第4页 / 共16页
thinkphp教学笔记剖析_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《thinkphp教学笔记剖析》由会员分享,可在线阅读,更多相关《thinkphp教学笔记剖析(16页珍藏版)》请在金锄头文库上搜索。

1、ThinkPHP课程目标:1、关于mvc和tp的简介2、快速入门3、学习tp中的各个组件(M、V、C)控制器模型视图4、实用项关于MVC和TP的简介:一、 什么是框架框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。 二、 为什么使用框架l 代码重用l 合理分工l 解决多人协作开发问题三、 主流的php框架l Zend Framework l Yii l Symfony l Codelgniter l ThinkPHP l 四、 什么是MVCl MVC是施乐帕克研究中心 (Xerox PARC)在八十年代为编程语言Smalltalk80发明的一种软件

2、设计模式,至今已被广泛使用。l MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。 l M:model模型表示企业数据和业务规则 l V:view视图是用户看到并与之交互的界面 l C:controller控制器接受用户的输入并调用模型和视图去完成用户的需求 我们去吃饭,大堂经理问我们:客官来点什么?我们:来地沟油!经理让服务员将我们带到包房经理将我们点的菜发给厨房厨房开始做菜,好了之后,通知经理经理让服务员将菜端给我们经理:控制器后厨:模型 菜:数据服务员:视图五、 获取ThinkPHPl http:/l 下载thin

3、kphp3.0l 直接部署到项目中l php5.2所有tp版本要求php必须是5以上的,tp3中要求是5.2以上的快速入门一、 了解TP目录结构将下载的tp3.0压缩包进行解压,可看到两个夹:Examples:代码示例ThinkPHP:这是我们想用的框架程序我们需要将Thinkphp 文件夹移动至我们的项目中,打开ThinkPHP文件夹,可以看到如下内容:l ThinkPHP.php框架入口文件l Common框架公共文件目录l Conf框架配置文件目录l Lang框架系统语言目录l Lib系统核心基类库目录l Tpl系统模板目录l Extend框架扩展目录二、 开发流程l 创建项目,并将Th

4、inkPHP获得l 创建入口文件l 配置项目l 创建控制器l 创建模型(可以不存在自定义模型)l 创建模板l 运行调试,调优l 部署到生产环境三、 入口文件l 所有项目都是从入口文件开始的l 定义框架路径l 定义项目路径l 定义项目名称l 载入框架入口文件 四、第一个ThinkPHP项目1、 创建项目2012,将thinkphp复制到我们网站的根路径下,在htdocs下创建index.php文件l require(ThinkPHP/ThinkPHP.php);l THINK_PATHl APP_NAME l APP_PATH 在tp中,由于目录结构稍微复杂,所以在第一次访问入口文件时,会帮助我

5、们自动创建项目结构运行路径:http:/localhost/index.php,可以看到如下界面,说明运行成功2、 了解项目目录结构l Common项目公共文件目录l Conf项目配置目录l Lang项目语言包目录l Lib项目类库目录l Tpl项目模板目录l Runtime项目运行时目录3、为什么输入地址之后,可以看到内容http:/localhost/index.php由于请求的是这个url,如果没有写任何信息,表示请求Index模块的index动作也就是说:会自动请求IndexAction这个类下的index方法为什么这样自动请求?l DEFAULT_MODULE:默认的默认模块名l D

6、EFAULT_ACTION:默认的动作名这个是由于这两个配置选项来决定的在配置文件Conf/config.php中添加如下内容:这时会请求StudentAction这个类下的add方法。4、我们按照以上的结构开发项目,合适?不合适将thinkphp框架和入口文件index.php移动至我们的项目路径(2012)文件夹下这样做需要哪些改动?如果您的项目和上图目录结构相同,可以使用如下代码:这样即可重新运行,重新初始化。5、开启调试l define(APP_DEBUG,true);l require(ThinkPHP/ThinkPHP.php);APP_DEBUG:表示开启调试功能功能:如果开启,

7、则不产生runtime.php这个编译文件如果产生了错误,可以看到错误提示6、了解thinkphp的工作流程Thinkphp.php文件主要内容如下:定义了项目路径定义了运行时文件路径定义是否开启调试,默认是false如果关闭调试模试并且运行时文件存在,就直接包含运行时文件否则定义tp框架的路径,并且包含common下的运行时文件运行时文件的功能?第一次运行时,会生产生运行时文件,这个运行时文件会保存一些系统常用设置和常用函数,这样一来,下次请求时,直接包含该运行时文件,可以避免系统开销运行时文件可能会造成延迟效果,在开发时,建议开启APP_DEBUG7、完善程序l 创建Index控制器的he

8、llo方法,显示相应模板l 创建Admin控制器l 创建Admin控制器的index方法,显示相应模板l 创建Admin控制器的hello方法,显示相应模板控制器一、什么是控制器控制器接受用户的输入并调用模型和视图去完成用户的需求。 举个例子:http:/项目/index.php/a模块/b操作该请求是想请求a模块的b方法,也就是说,会调用a模块的控制器的b方法我们需要在项目目录的action目录下,定义一个控制器文件,这个文件的命名规则如下:模块名(首字母大写)Action.class.php文件中的类的命名规则:Class 模块名(首字母大写)Action extends Action二、

9、URL的调度模式Thinkphp默认支持的url是这种形式的:http:/项目/index.php/模块/操作除此之外,还有哪些种url被支持在tp中,可以配置下面这个选项来使用相应的urlURL_MODEL = 1,URL_MODEL它的取值范围:共有4种0:普通模式1:pathinfo模式2:Rewrite模式3:兼容模式1普通模式:http:/serverName/appName/index.php?m=module&a=action&id=1m:模块名a:动做名表示请求参数m指定的模块,请求这个模块下的a参数指定的方法,同时向这个方法传递一个参数为id,值为1将url_model配置为

10、0URL_MODEL = 0/设置url为普通模式2、 pathInfo模式 (默认模认)http:/serverName/appName/index.php/module/action/id/1/ module:表示模块action:表示方法id/1 :传递一个参数id,值为1URL_PATHINFO_DEPR :设置url分隔符URL_MODEL = 1,/设置url为pathInfo模式URL_PATHINFO_DEPR = - /设置url中的分隔符如果这样设置,可以这样访问:http:/localhost/2012/index.php/Index-hello-id-13、 Rewri

11、te模式我们可以利用rewrite模实现对入口文件的隐藏http:/serverName/appName/module/action/id/1/ URL_MODEL = 2/设置为rewrite模式最终,可以使用下列这种URL进行访问,实现了对index.php入口文件的隐藏http:/localhost/2012/Index/hello4、 兼容模式http:/serverName/appName/?s=/module/action/id/1/ module:模块名action:动做名id:参数名1:参数值URL_MODEL = 3/设置为兼容模式三、定义控制器位置:Lib/Actioncl

12、ass UserAction extends Actionpublic function add()$this-display();四、 空操作l 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。l _empty($name)$name:请求的不存在的方法的名称怎样解决非法操作?当我们请求一个不存在的方法时,会自动定位到这个叫_empty的方法中,这个不存在的方法名会保存到参数$name中1) 可以实现一些错误页面的处理功能2) 可以实现一些url的优化:在下面,我们将这个问题说清楚/我想查询北京、上海

13、的所有会员信息?public function search()$city=$_GETcity;echo select * from User where city=$city.;我希望能实现这样的url优化:http:/localhost/2012/index.php/User/shanghaihttp:/localhost/2012/index.php/User/beijingTP认为shanghai和beijing是一个方法名,会自动到UserAction控制器下查shanghai和bejing方法,由于我们没有定义这两个方法,所以会自动执行_empty方法,所以这时$name参数的值为shanghai或beijing,代码如下:五、 空模块l 空模块的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(EmptyAction),利用这个机制我们可以用来定制错误页面和进行URL的优化。l EmptyActionMODULE_NAME当请求不到指定的模块时,会自

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号