目录:
学习自: 李炎恢
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. 目录结构
-
ThinkPHP5.1 默认是
多模块架构,也可以设置为单模块操作; -
所有模块的命名空间以
app这三个字母作为根命名空间(可通过环境变量更改); -
这个是 结构列表:

index和test 就是 module1,module2。

-
模块下的类库文件命名空间统一为:app\模块名;
比如:app\index\controller\Index。这个index是控制器, -
多模块设计在 URL 访问时,必须指定相应的模块名,比如:
public/test/abc/eat
但是,我们之前的是省略的呀:

看这里,config,下的app.php中规定了默认的模块名,默认的控制器名,
如果不是默认的话,就要自己写全了,
- 如果你只有 test 这一个模块时,你可以绑定这个模块,从而省略写法.就可以省略那个模块名了:
public/qwer/eat。此时,URL 调用就变成了:public//eat;多模块时,则其它无法访问
在public下的index.php中加上一个 bind 来帮顶模块。
Container::get('app')->bind('test')->run()->send();

.我们再是一次,发现,错了,因为我们绑定了,所以这个test是多余的。
去掉之后,就好了。
而且此时的index模块就访问不了了。因为我们已经绑定了模块位 test了。

此时,只有一个模块test了,其他的就不好了。
- 如果你的应用特别简单,只有一个模块,一个控制器,那改写下追加的方法
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是应用目录,也可以看看其他的

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

被折叠的 条评论
为什么被折叠?



