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

本文详细介绍了ThinkPHP5.1中的URL解析模式,包括基本的URL样式和模块目录结构。在URL解析中,入口文件是public目录下的index.php,模块位于application目录下。接着讨论了模块设计,包括目录结构、空模块、单一模块的配置,并提到了环境变量的影响。在模块设计部分,解释了如何通过配置文件设定默认模块,以便在URL访问时省略模块名。


学习自: 李炎恢

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是应用目录,也可以看看其他的
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值