ThinkPHP学习 --- 02 url解析 ---- 03 模块设计 ---------- 学习

Posted Zero_Adam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP学习 --- 02 url解析 ---- 03 模块设计 ---------- 学习相关的知识,希望对你有一定的参考价值。


学习自: 李炎恢

02. URL 解析模式

进入项目的目录,然后php think run。就行了

在这里插入图片描述

1. url解析

基本样式:http://serverName/index.php/模块/控制器/操作/参数/值…;

index.php 为入口文件,在 public 目录内的 index.php 文件
然后,

第一个是模块。模块在哪呢。
模块在 application 目录下默认有一个 index 目录,这就是一个模块。
这个文件夹index就是一个模块,目前application只有index这一个模块
在这里插入图片描述
控制器:
而在 index 目录下有一个 controller 控制器目录的 Index.php 控制器。
注意这个Index是大写的。
在这里插入图片描述这个Index.php和里面的类是 呼应的,名字都要一样的。

在这里插入图片描述控制器,在这里是不用区分大小写的。

控制器完了之后,下面是操作。
控制器中的两个方法都叫操作。比如,hello或者 hello

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述这里的传参,和平常的PHP不一样。
在这里插入图片描述

这里我们自己创建一个模块看看。

在这里插入图片描述在这里插入图片描述

?????

这里报错了,,不应该啊,这三个都对的上的
在这里插入图片描述
其实是命名空间的问题!
参考一下index的命名空间,那么我们自己的也应该知道了

在这里插入图片描述
!! 对了对了
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. url模式。

在apache中配置环境,然后 在 index.php 同级目录下的.htaccess。配置
出现了点小问题,就是去掉index.php之后显示 no input file specialed。然后解决了。
在这里插入图片描述
前面这块是可以当作域名的,后面的就是我们输入的参数了。
在这里插入图片描述

03. 模块设计:

学习要点:

  1. 目录结构
  2. 空模块
  3. 单一模块
  4. 环境变量

1. 目录结构

  1. ThinkPHP5.1 默认是多模块架构,也可以设置为单模块操作;

  2. 所有模块的命名空间以app 这三个字母作为根命名空间(可通过环境变量更改);

  3. 这个是 结构列表:
    在这里插入图片描述
    index和test 就是 module1,module2。

在这里插入图片描述

  1. 模块下的类库文件命名空间统一为:app\\模块名;
    比如:app\\index\\controller\\Index。这个index是控制器,

  2. 多模块设计在 URL 访问时,必须指定相应的模块名,比如:public/test/abc/eat
    但是,我们之前的是省略的呀:
    在这里插入图片描述
    看这里,config,下的app.php中规定了默认的模块名,默认的控制器名,

在这里插入图片描述如果不是默认的话,就要自己写全了,

  1. 如果你只有 test 这一个模块时,你可以绑定这个模块,从而省略写法.就可以省略那个模块名了:public/qwer/eat。此时,URL 调用就变成了:public//eat;多模块时,则其它无法访问

在public下的index.php中加上一个 bind 来帮顶模块。
Container::get('app')->bind('test')->run()->send();

在这里插入图片描述
.我们再是一次,发现,错了,因为我们绑定了,所以这个test是多余的。
在这里插入图片描述去掉之后,就好了。
在这里插入图片描述而且此时的index模块就访问不了了。因为我们已经绑定了模块位 test了。
在这里插入图片描述
此时,只有一个模块test了,其他的就不好了。

  1. 如果你的应用特别简单,只有一个模块,一个控制器,那改写下追加的方法
    Container::get('app')->bind('test/qwer')->run()->send();
    只有一个控制器,也就是。我的test模块下面只有 qwer这一个 php 文件了。
    在这里插入图片描述
    这时候,模块名,test,控制器,qwer,就都可以省略了。
    在这里插入图片描述
    这样的情况 少得很,,

2. 空模块

在这里插入图片描述

打开config的app.php。找。
在这里插入图片描述
我们现在又两个模块,一个是 index,一个是test。如果我们这个时候,访问一个 不存在的模块的时候,就会自动指向,我们规定的这个默认模块.
我们可以做一个404模块,直接指向404就可。

3. 单一模块。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我们只有一个模块的话,就不用像上面的一样,还要绑定 模块,
其他的都删除了。

在这里插入图片描述

在这里插入图片描述

4. 环境变量:

在这里插入图片描述
Env 是一个类库::是静态方法的意思
在这里插入图片描述
跟进Env。app_path是应用目录,也可以看看其他的
在这里插入图片描述

以上是关于ThinkPHP学习 --- 02 url解析 ---- 03 模块设计 ---------- 学习的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP框架 _ 学习3

ThinkPHP学习——控制器_Action参数绑定

thinkphp 取得url参数

thinkphp5学习

ThinkPHP3.2基础教程(33)--路由功能

thinkPHP URL访问