《PHP Web应用开发案例教程》630-9(阮云兰)教案 第27课 ThinkPHP的配置与架构_第1页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第27课 ThinkPHP的配置与架构_第2页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第27课 ThinkPHP的配置与架构_第3页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第27课 ThinkPHP的配置与架构_第4页
《PHP Web应用开发案例教程》630-9(阮云兰)教案 第27课 ThinkPHP的配置与架构_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE6PAGE6PAGE7PAGE7

课题ThinkPHP的配置与架构课时2课时(90min)教学目标知识技能目标:(1)了解入口文件、模块和控制器的概念(2)掌握ThinkPHP配置文件的设置(3)了解ThinkPHP的命名规范及其项目构建流程素质目标:(1)培养学生责任意识和职业素养,使学生养成良好的习惯(2)培养学生的科学精神、价值取向、工匠精神、家国情怀教学重难点教学重点:ThinkPHP的命名规范及其项目构建流程教学难点:入口文件、模块和控制器教学方法案例分析法、问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:→→→传授新知(38min)第2节课:→传授新知(20min)→小组讨论(15min)→课堂小结(3min)→作业布置(2min)教学过程主要教学内容及步骤设计意图第一节课课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,预习本节课要学习的知识【学生】完成课前任务通过课前任务,使学生预习本节课要学习的知识,增加学生的学习兴趣考勤(2min)【教师】使用文旌课堂APP进行签到【学生】班干部报请假人员及原因培养学生的组织纪律性,掌握学生的出勤情况问题导入(5min)【教师】提出以下问题:ThinkPHP的构建流程是怎样的,怎么对其配置文件进行配置呢?通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(38min)【教师】通过学生的回答引入要讲的知识,讲解ThinkPHP的配置方法和架构14.3ThinkPHP的配置配置文件是ThinkPHP框架程序运行的基础条件,框架的很多功能都需要在配置文件中设置之后才会生效。ThinkPHP提供了灵活的全局配置功能,采用最有效率的PHP返回数组方式定义,支持惯例配置、公共配置、模块配置等。对于有些简单的应用,不需要任何配置文件;而对于复杂的要求,还可以增加动态配置文件。系统的配置参数是通过静态变量全局存取的,存取方式简单高效。14.3.1配置格式配置文件一般位于“.\Application\Common\Conf”目录下面,文件名为“config.php”。在ThinkPHP中,默认所有配置文件的定义格式均采用返回PHP数组的方式,其定义格式如下:<?phpreturnarray( 'DEFAULT_MODULE'=>'Index', //默认模块 'URL_MODEL'=>'2', //URL模式 'SESSION_AUTO_START'=>true, //是否开启session //更多配置参数 //... );?>配置参数(如上面代码中的URL_MODEL)不区分大小写,但是一般建议保持大写定义配置参数的规范。14.3.2读取配置无论哪种配置文件,都统一使用系统提供的C()方法来获取配置参数。其用法如下:C('参数名称')例如,要读取当前的URL模式配置参数,可使用以下语句:$model=C('URL_MODEL');✈【教师】通过多媒体展示利14-3,演示通过打印配置参数,验证C()方法的应用的操作(1)在网站根目录下新建文件夹“03”,将解压后的ThinkPHP文件拷贝到该目录下,并运行应用入口文件“index.php”,以自动生成应用目录结构。(2)打开“.\Application\Common\Conf”目录下的配置文件“config.php”,设置配置参数如下:returnarray( //'配置项'=>'配置值' 'DB_TYPE'=>'mysql', //数据库类型 'DB_HOST'=>'localhost', //服务器地址 'DB_NAME'=>'database14', //数据库名 'DB_USER'=>'root', //用户名 'DB_PWD'=>'123456', //密码);(3)打开默认的Index控制器文件IndexController.class.php,修改默认的index()操作方法如下:publicfunctionindex(){dump(C('DB_TYPE')); //获取配置参数}dump()是var_dump()的简称,用于显示关于一个或多个表达式的结构信息,包括表达式的类型与值。ThinkPHP中已经定义好了该函数,可以直接应用。(4)再次运行应用入口文件“index.php”,结果如图所示。✈【学生】观看、理解、记忆配置参数名称中不能含有“.”和特殊字符,允许出现字母、数字和下画线。如果要读取的参数尚未设置,则返回NULL。此外,系统支持在读取的时候设置默认值,例如://如果DB_HOST参数尚未设置,则返回默认的字符“localhost”$model=C('DB_HOST',null,'localhost');【教师】讲解ThinkPHP的架构14.4ThinkPHP架构【教师】安排学生扫码观看视频“模块化设计”,讲解知识✈【学生】扫码观看、理解、记忆14.4.1模块化设计一个完整的ThinkPHP应用基于“模块/控制器/操作”设计,并且,如果有需要的话,可以支持多入口文件。ThinkPHP新版采用模块化的架构设计思想,对目录结构规范做了调整,可以支持多模块应用的创建,让应用的扩展更加方便。一个典型的URL访问规则是(此处以默认的PATHINFO模式为例说明,当然也可以支持普通的URL模式):http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...]为便于理解,下面解释一下其中的几个概念:应用:基于同一个入口文件访问的项目,称之为一个应用,如前面默认的Application。模块:一个应用下面可以包含多个模块,每个模块在应用目录下面都是一个独立的子目录,一般的网站都有前台(Home)和后台(Admin)两个模块。控制器:每个模块可以包含多个控制器(一般位于模块下的Controller文件夹中),一个控制器通常体现为一个控制器类。操作:每个控制器类可以包含多个操作方法,也可能是绑定的某个操作类,每个操作是URL访问的最小单元。✈【教师】通过多媒体展示例14-4,演示在默认控制器中新建操作并访问的操作通过在默认控制器中新建操作并访问,来验证ThinkPHP应用是基于“模块/控制器/操作”进行设计的思想。(1)在网站根目录下新建文件夹“04”,将解压后的ThinkPHP文件拷贝到该目录下,并运行应用入口文件“index.php”,以自动生成应用目录结构。(2)打开“.\Application\Home\Controller”目录下的默认Index控制器文件“IndexController.class.php”,在其中新建方法demo()……(详见教材)✈【学生】观看、理解、记忆1.模块设计✈【教师】通过多媒体展示““Home”模块结构”图片,并进行介绍模块化设计中的模块是最重要的部分,模块其实是一个包含配置文件、函数文件和MVC文件(目录)的集合。例如,前面14.2.5节自动生成的目录结构中有一个“Home”模块,其中的Conf是配置文件目录,Common是公共函数文件目录,模块控制器目录默认生成的Home模块模块函数公共目录模块配置文件目录模块模型目录模块视图文件目录剩下的3个(Controller模块控制器目录默认生成的Home模块模块函数公共目录模块配置文件目录模块模型目录模块视图文件目录2.多入口文件采用单一入口文件加“模块/控制器/操作”的方法,很容易泄露网站目录结构信息,用户只要看到网页路径,就能知道网站结构,容易导致网站被黑客攻击。为此,可以给相同的应用及模块设置多个入口,不同的入口文件可以设置不同的应用模式或者绑定模块。✈【教师】通过多媒体展示例14-5,演示在为同一个应用设置两个入口文件的操作多入口文件。本例通过为同一个应用设置两个入口文件,来学习如何为一个应用设置多个入口。(1)在网站根目录下新建文件夹“05”,将解压后的ThinkPHP文件拷贝到该目录下,并运行应用入口文件“index.php”,以自动生成应用目录结构。(2)在“.\Application”目录下复制一个Home模块,将其重命名为Admin,并打开Admin目录下“Controller”文件夹中的“IndexController.class.php”文件,将其首行代码“namespaceHome\Controller;”修改为“namespaceAdmin\Controller;”,之后修改其index()方法……(详见教材)✈【学生】观看、理解、记忆【学生】聆听、思考、记录通过教师的讲解和演示,使学生了解ThinkPHP的配置方法和架构第二节课问题导入(5min)【教师】提出以下问题:什么是URL模式,URL模式的作用是什么?【学生】思考、举手回答通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(20min)【教师】通过学生的回答引入新知,介绍PHP中URL模式、命名空间和ThinkPHP的系统流程14.4.2URL模式✈【教师】通过多媒体展示“典型网址”图片,并进行介绍通过前面对“模块化设计”的学习,相信读者已经对URL有了个简单的认识,系统一般是从URL参数中解析当前请求的模块、控制器和操作,如图14-20中的网址所示。模块控制器模块控制器操作由于ThinkPHP的命名规范是采用驼峰命名法(首字母大写)的规则,而URL中的模块和控制器都是对应的文件名,所以ThinkPHP框架的URL是区分大小写(主要是针对模块、控制器和操作名,不包括应用参数)的,这一点非常关键。在直接访问入口文件时,由于URL中没有模块、控制器和操作,系统会访问默认模块(Home)下面的默认控制器(Index)的默认操作(index),因此下面的访问是等效的:http://serverName/index.phphttp://serverName/index.php/Home/Index/index这种URL模式是系统默认的PATHINFO模式,不同的URL模式获取模块和操作的方法不同,ThinkPHP支持的URL模式有四种,分别是普通模式、PATHINFO模式、REWRITE模式和兼容模式,如表所示。可以通过设置URL_MODEL参数值,来改变URL模式。✈【教师】通过多媒体展示“常用算术运算符”表格,并进行介绍URL模式URL模式URL_MODEL值普通模式0PATHINFO模式1REWRITE模式2兼容模式3如果整个应用下面的模块采用统一的URL模式,就可以在应用配置文件中设置URL模式,如果不同模块需要设置不同的URL模式,则可以在不同的模块配置文件中设置。1.普通模式普通模式就是用传统的GET传参方式来指定当前访问的模块和操作,例如,以下URL中:http://localhost/?m=home&c=user&a=login&var=valuem参数表示模块,c参数表示控制器,a参数表示操作。如果使用该模式访问前面例14-4中的

URL“http://localhost/example/ph14/04/index.php/Home/Index/demo”,将变成这种形式“http://localhost/example/ph14/04/index.php/?m=Home&c=Index&a=demo”,在浏览器地址栏中输入该URL,按“Enter”键,结果如图所示。✈【教师】通过多媒体展示“普通模式的URL”图片,并进行介绍2.PATHINFO模式PATHINFO模式是系统默认的URL模式,提供了最好的SEO支持,能够支持大多数主机环境,其形式如

“http://localhost/example/ph14/04/index.php/Home/Index/demo”。前面用到的URL都属于PATHINFO模式。此处需要注意一点,URL中的index.php不是网站的路径。3.REWRITE模式REWRITE模式是在PATHINFO模式的基础上添加了重写规则的支持,可以去掉URL地址中的入口文件index.php,但是需要额外配置Web服务器的重写规则。如果是Apache,还需要在入口文件的同级目录中添加.htaccess文件,其内容如下:<IfModulemod_rewrite.c> Options+FollowSymlinks RewriteEngineOnRewriteCond%{REQUEST_FILENAME}!-dRewriteCond%{REQUEST_FILENAME}!-fRewriteRule^(.*)$index.php/$1[QSA,PT,L]</IfModule>我们使用的ThinkPHP版本,默认都提供了该文件,不需要单独创建。✈【教师】通过多媒体展示例14-6,演示配置Web服务器的重写规则的操作验证REWRITE模式的应用。本例通过配置Web服务器的重写规则,来验证REWRITE模式的应用。(1)在网站根目录下新建文件夹“06”,将例14-4中的素材文件“04”目录下的文件全部拷贝到“06”文件夹中(2)打开服务器配置文件。服务器配置文件“httpd.conf”一般位于“Apache24\conf”目录下,使用记事本打开该文件……(详见教材)✈【学生】观看、理解、记忆14.4.3命名空间前面曾多次接触到命名空间,ThinkPHP新版全面采用命名空间方式定义和加载类库文件。打开默认的控制器文件“IndexControler.class.php”(位于“.\Application\Home\Controller”

目录下)。其中第一行代码:namespaceHome\Controller;就是对命名空间的定义,其中的Home代表前台模块,Controller是当前的目录名。下面的语句:useThink\Controller;✈【教师】通过多媒体展示““Controller.class.php”文件”图片,并进行介绍其中的Think是ThinkPHP核心目录“Library”目录下的“Think”;Controller是指“Think”目录下的“Controller.class.php”文件,将其打开,如图所示。默认控制器文件“IndexControler.class.php”中的第3行:classIndexControllerextendsController{其中的Controller就是指图14-24中的Controller类,也就是说IndexController类是继承自“Controller.class.php”文件中的Controller类。14.4.4ThinkPHP的系统流程系统流程是指用户每访问一次网站,系统要执行的基本步骤。使用ThinkPHP框架开发的应用的标准执行流程包括以下步骤:(1)用户的URL请求。(2)调用入口文件(通常是网站的index.php)。(3)载入框架入口文件(ThinkPHP.php,自动调用框架必需的类)。(4)加载配置文件(应用配置文件的优先级要小于模块下的配置文件)。系统中的配置文件有很多,系统往往会先加载ThinkPHP核心目录下的配置文件(位于“ThinkPHP/Conf”目录下);接下来加载应用目录下的配置文件(位于“.\Application\common\conf”目录下);最后加载要访问模块下的配置文件。例如,要访问Home模块,会加载Ho

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论