ThinkPHP5框架全册教案完整版教学设计.docx
《ThinkPHP5框架全册教案完整版教学设计.docx》由会员分享,可在线阅读,更多相关《ThinkPHP5框架全册教案完整版教学设计.docx(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、ThinkPHP5框架原理与实战全册教嚎教学设计课程名称:ThinkPHP5框架原理与实战校语年级:2019年级授课学期:2019学年第一9期教师找名:某孟老师年 月曰 器、商品属性控制器等。在工程中,通常将每个模块单独放在一个目录下, 在目录中保存和模块相关的控制器、模型和视图等文件。操作:在一个控制器中,会提供一些具体的操作。例如,商品信息控制器中的 操作有商品信息查询、商品信息修改、商品信息添加、商品信息删除等。在 工程中,操作就是定义在控制器类中的方法。案例演示如何在入口文件中获取请求信息,并根据请求信息找到对应的模块、 控制器和操作。 修改public/index.php文件,添加如
2、下代码。?php$pathinfo = isset($_SERVER,PATH_INFO,) ? $_SERVERPATH_INFO : n; echo $pathinfo; 在public目录下创立student目录表示student模块,然后在student目录中创 建controller、model和view目录,将原有的文件放入相应目录下面。public/student/controller/StudentController.php public/student/model/StudentModel.php public/student/view/student.htmlpublic
3、/index.php修改public/index.php文件,从$pathinfo中提取出模块、控制器和操作。$action();修改public/student/StudentController.php文件中的模型路径和视图路径。 public function index()equire MODULE_PATH . model/StudentModel.php1; / 修改模型路径 $model = new StudentModel();$data = $model-getAll();require MODULE_PATH . View/student.html; / 修改视图路径 )通
4、过浏览器访问 :/mytp.test/index.php/student/student/index,如果能看到学 生信息的输出结果,说明程序已经执行成功,已经实现了通过统一入口文件 index.php进行访问,也可以尝试创立goods模块Goodsinfo控制器add操作, 来测试是否能够正确访问。路由路由的实现原理 Web开发中的路由可以简单理解为URL到具体模块、控制器和操作的映射。 ThinkPHP中,开发人员不需要专门定义路由规那么,框架会自动识别URL地址 中的模块、控制器和操作。假设定义了路由规那么,可以使工程的URL更加灵活。 在ThinkPHP中,访问一个控制器中的方法,可以
5、通过3种方式访问,分别是: 完整URL、隐藏入口文件的URL、自定义短URL。 完整URL:完整URL可以直接找到入口文件index.php ,然后对 :/mytp.test/index.php/index/user/login进行路由规那么匹配。由于在路由表达 式中没有定义index/user/login的映射地址,因此路由规那么没有生效,最后由 框架的自动路由机制识别为index模块User控制器login操作。 隐藏入口文件的URL:利用Apache的URL重写功能可以在URL中隐藏入口 文件index.php,然后对index/user/login进行路由规那么匹配,和完整URL 一样
6、, 路由规那么没有生效,由框架自动路由机制识别为index模块User控制器login 操作。 自定义短URL:在URL重写后找到index.php,然后对login进行路由规那么匹 配,通过路由表达式获得路由地址index/User/login,然后找到了 index模块 User控制器login操作。 利用URL重写功能可以隐藏URL中的入口文件index.php,然后通过路由功 能可以进一步缩短URL地址。从用户体验来说,一个短的URL更有利于用 户记忆。隐藏入口文件。 在URL中,index.php是工程的入口文件,为了让URL更加简洁,通常会省 略URL中的入口文件。例如,用户登录的
7、URL为 :/localhostZindex.php/index/user/login,由于这个地址比拟长,不利于记忆, 希望换成一个简化地址 :/localhost/login 0使用Apache的重写功能隐藏入口文件index.phpo重写功能可以打破URL和 文件的对应关系,实现自定义URL的效果。假设要使用重写功能,需要在Apache 配置文件 d.conf中开启rewite模块,在配置文件中搜索“LoadModule rewrite_module”找到加载模块的配置,取消“#”注释,开启rewrite模块后,重 启Apache服务,就可以通过编写配置实现重写。 但由于直接在Apach
8、e配置文件中编写重写配置比拟麻烦,每次修改配置都需 要重启Apache才会生效,一旦配置有误将无法启动,所以推荐将重写的配置 写在分布式配置文件.htaccess中。在C:/web/www/mytp/public目录中创 建.htaccess文件,具体代码如下。Options 4-FollowSymlinks -MultiviewsRewriteEngine OnRewriteCond % REQUEST_FILENAME !-dRewriteCond %REQUEST_FILENAME !-fRewriteRule 八(.*)$ index.php/$l QSA,PT,L在C:/web/ww
9、w/mytp目录下创立叩plication目录,将原来的public/student目 录放入application目录中。经过调整后,新的目录结构如下,将控制器、模 型和视图文件放在application目录中后,public目录只有入口文件index.php 提供对外访问,这样的目录结构平安性更高,并且不影响重写功能。application/student/controller/StudentController.php application/student/model/StudentModel.php application/student/view/student.htmlpubli
10、c/index.php public/.htaccess将index.php中的模块路径修改为上级目录下的application目录中。 define(MODULE_PATH, ./application/. $module .7); 通过浏览器访问 :/mytp.test/student/student/index,测试在 URL 中隐藏入口 文件的功能是否生效。 ThinkPHP中的路由ThinkPHP5.1中的路由功能非常强大,不仅可以让复杂的访问简单化,而且支 持多种定义方式。 ThinkPHP工程目录下的route目录用于存放路由定义文件,该目录下所有的路 由定义文件都会被加载,默认
11、的路由定义文件为route.phpo使用Route:rule()定义路由,Route是ThinkPHP中的路由类,该类提供了 rule() 方法用来注册路由规那么,其基本语法格式如下。Route: :rule。路由表达式7路由地址请求类型);演示一些典型的配置。Route:rule(7 Index/indexZ*);/ 将首页路由到 index2()方法Route:rule(hello 1 admin/index/hello);/ 将 hello 1 路由到 admin 模块Route:get(hello2 Index/index/hello1);/ 定义 GET 路由规那么Route:pos
12、t,heHo3index/index/hello);/ 定义 POST 路由规那么Route:lanyCelk1, index/index/hello);/所有请求类型都支持的路由规那么在路由表达式中传递固定参数和可选参数,传递固定参数并不是指URL中传 递的参数,而是在路由地址中为指定的操作方法传入参数,在访问的URL中 是不可见的,能起到一定的平安保护作用;传递可选参数,可以用符号 表示可选参数,可选参数必须放在必选参数的后面,如果中间使用了可选参 数,后面的参数都会变成可选参数。Route:iruleCser/iid1, ,index/detail?name=test,);传递固定单数R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ThinkPHP5 框架 教案 完整版 教学 设计
限制150内