好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

ThinkPHP教学笔记剖析.doc

16页
  • 卖家[上传人]:jiups****uk12
  • 文档编号:90825797
  • 上传时间:2019-06-19
  • 文档格式:DOC
  • 文档大小:275.01KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 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)在八十年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用l MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开使用MVC应用程序被分成三个核心部件:模型、视图、控制器 l M:model模型表示企业数据和业务规则 l V:view视图是用户看到并与之交互的界面 l C:controller控制器接受用户的输入并调用模型和视图去完成用户的需求 我们去吃饭,大堂经理问我们:客官来点什么?我们:来地沟油!经理让服务员将我们带到包房经理将我们点的菜发给厨房厨房开始做菜,好了之后,通知经理经理让服务员将菜端给我们经理:控制器后厨:模型 菜:数据服务员:视图五、 获取ThinkPHPl l 下载thinkphp3.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 创建项目,并将ThinkPHP获得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中,由于目录结构稍微复杂,所以在第一次访问入口文件时,会帮助我们自动创建项目结构运行路径: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 DEFAULT_ACTION:默认的动作名这个是由于这两个配置选项来决定的在配置文件Conf/config.php中添加如下内容:这时会请求StudentAction这个类下的add方法。

      4、我们按照以上的结构开发项目,合适????不合适将thinkphp框架和入口文件index.php移动至我们的项目路径(2012)文件夹下这样做需要哪些改动???如果您的项目和上图目录结构相同,可以使用如下代码:这样即可重新运行,重新初始化5、开启调试l define(‘APP_DEBUG’,true);l require(‘ThinkPHP/ThinkPHP.php’);APP_DEBUG:表示开启调试功能功能:如果开启,则不产生runtime.php这个编译文件如果产生了错误,可以看到错误提示6、了解thinkphp的工作流程Thinkphp.php文件主要内容如下:定义了项目路径定义了运行时文件路径定义是否开启调试,默认是false如果关闭调试模试并且运行时文件存在,就直接包含运行时文件否则定义tp框架的路径,并且包含common下的运行时文件运行时文件的功能???第一次运行时,会生产生运行时文件,这个运行时文件会保存一些系统常用设置和常用函数,这样一来,下次请求时,直接包含该运行时文件,可以避免系统开销运行时文件可能会造成延迟效果,在开发时,建议开启APP_DEBUG7、完善程序l 创建Index控制器的hello方法,显示相应模板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二、URL的调度模式Thinkphp默认支持的url是这种形式的:http://项目/index.php/模块/操作除此之外,还有哪些种url被支持在tp中,可以配置下面这个选项来使用相应的url'URL_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配置为0'URL_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、 Rewrite模式我们可以利用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/Action class UserAction extends Action{ public function add(){ $this->display(); } }四、 空操作l 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。

      l _empty($name)$name:请求的不存在的方法的名称怎样解决非法操作?当我们请求一个不存在的方法时,会自动定位到这个叫_empty的方法中,这个不存在的方法名会保存到参数$name中1) 可以实现一些错误页面的处理功能2) 可以实现一些url的优化:在下面,我们将这个问题说清楚//我想查询北京、上海的所有会员信息? public function search() { $city=$_GET['city']; 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 EmptyAction MODULE_NAME当请求不到指定的模块时,会自。

      点击阅读更多内容
      相关文档
      礼仪讲授教案.docx 高考语文一轮复习讲义 第5部分 传统文化阅读·名句名篇默写.docx 高考语文一轮复习讲义 第11部分 写作 任务组五 微任务 作文书写——比天还大的事儿.docx 高考语文一轮复习讲义 第4部分 传统文化阅读 古诗词 任务组二 真题研练.docx 高考语文一轮复习讲义 第3部分 传统文化阅读 文言文(考点部分) 任务组三 任务四 仔细比对准确提取概括分析文意.docx 高考语文一轮复习讲义 第1部分 语言策略与技能 任务组二 任务五 看准对象因境设辞做到语言得体.docx 高考化学 1.传统文化与STSE 答案解析.docx 高考语文一轮复习讲义现代文阅读 专题16 Ⅱ 真题研练.docx 高考化学 专项拔高抢分练 9.反应热与反应历程.docx 高考化学 专项拔高抢分练 1.传统文化与STSE.docx 高考物理 板块三  气体实验定律和热力学定律的综合应用.docx 高考化学 二题型3 无机化工生产流程题.docx 高考语文一轮复习讲义 第4部分 写作 专题17 Ⅲ 突破二 绘声绘色巧用细节描写生动丰满.docx 高考数学 中档大题练1.docx 高考语文一轮复习讲义 第5部分 教材文言文点线面教材文言文复习综合试卷.docx 高考语文一轮复习讲义 第4部分 传统文化阅读 古诗词 任务组三 微任务一 聚焦诗意准确选择.docx 高考数学 创新融合4 数列与导数.docx 高考语文一轮复习讲义 第5部分 教材文言文点线面 教材文言文点线面 必修5课文1 归去来兮辞 并序.docx 高考语文一轮复习讲义 第11部分 写作 任务组五 任务二 “三管”齐下美“言”有术文采抢眼养颜.docx 高考数学 满分案例三 立体几何.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.