URL解析模式(伪静态)

学习要点:
 
  1.URL 解析
  2.URL 模式
本节课我们来了解一下 ThinkPHP5.1 的架构体系,架构分为入口、URL、模块、命名
空间、容器和依赖注入、Facade、钩子和行为以及中间件,我们会根据课程进度来穿插讲
解,并不会按顺序来。
 
一.URL 解析
1.ThinkPHP 框架非常多的操作都是通过 URL 来实现的;
2.http://serverName/index.php/模块/控制器/操作/参数/值…;
3.index.php 为入口文件,在 public 目录内的 index.php 文件;
4.模块在 application 目录下默认有一个 index 目录,这就是一个模块;
5.而在 index 目录下有一个 controller 控制器目录的 Index.php 控制器;
6.Index.php 控制器的类名也必须是 class Index,否则错误;
7.而操作就是控制器 class Index 里面的方法,比如:index 或 hello;
8.那么完整形式为:public/index.php/index/index/index
晕了吗?
9.官方给的默认模块,默认控制器,默认操作都是 index,所以出现四个 index;
10.而操作还另给了一个带参数的方法:hello,如下:
11.那么完整形式为:public/index.php/index/index/hello/name/Lee
12.为了更清晰的了解 URL 路径的执行过程,我们自己创建一个完全不重复的 URL;
13.在 application 目录下创建一个 test 目录(模块);
14.在 test 模块下创建控制器目录 controller,并在旗下创建 Abc.php(控制器);
15.创建如下代码:
 
 
<?php
namespace app\test\controller;
class Abc
{
public function eat($who = '隔壁老王')
{
  return $who.'吃饭!';
}
}
16.代码中 eat 是方法(操作),$who 是参数,'隔壁老王'是值;
17.完整形式为:public/index.php/test/abc/eat/who/主人老李
 
二.URL 模式
1.上个要点已经了解了 URL 所有访问规则,通过创建 test 模块更加了解;
2.如果 wamp 环境没有开启伪静态,那么 ThinkPHP 不支持 URL 重写;
3.没有开启 URL 重写,那只能使用 PATH_INFO 模式,如下:
4.public/index.php?s=test/abc/eat/who/主人老李;
5.我们这里是 Apache,其它环境请,如果你使用了,请参考手册;
6.打开 httpd.conf 文件,加载 mod_rewrite.so,即去掉前面的#号;
7.将下面代码,放入入口文件 index.php 同级目录下的.htaccess;
8.上一步,框架本身已经做好了,那其实就是第 6 步一步,然后重启环境;
9.此时的 URL 重写,可以省略 index.php 了,路径如下:
10.public/test/abc/eat/who/主人老李

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章