thinkphp5基础认识
在thinkphp5中,无论我们怎么对项目进行更改,最终我们访问的文件只有一个,我们把这种只需要通过访问一个(单个)文件就能实现各种功能需求的设计,叫做『单入口模式』。
在thinkphp中,是通过“入口文件/模块名(module)/控制器名(controller)/触发器名(action)”来确定用户的URL对应执行哪个方法中的语句的。
把application
下面的子文件夹,称为模块(Module)
,把模块下的controller
文件夹中的子文件称之为控制器(Controller)
,把控制器文件中的方法称为触发器(Action)
。
在thinkphp每一个URL都会对应着一个触发器。
为了理清Thinkphp的文件路径与访问的url路径对应关系。我下面列据出一个比较乱的例子,能够很好的说明问题。首先先声明:我们的入口文件是本地www
的/thinkphp5.0/public/index.php
对应url地址是http://localhost/thinkphp5.0/public/index.php
。
thinkphp的默认值
- 当我们未指定模块名时,调用的是默认模块index。
- 当我们未指定控制器名时,调用的是默认控制器Index(注意,这个是Index,而不是index,原因是控制器实际上是一个类,我们规定类的名字首写字母要大写)。
- 当我们在URL中未指定触发器名时,调用的是默认触发器index。
首先理解这个简单的例子:
我们访问入口文件/thinkphp5.0/public/index.php
,对应url地址是http://localhost/thinkphp5.0/public/index.php
。未指明对应的模块,默认访问调用了模块index,未指定控制器名,调用的是默认控制器Index,未指定触发器名,调用的是默认触发器index。实际对应的url应该为http://localhost/thinkphp5.0/public/index.php/index/Index/index
。实际执行的是/thinkphp5.0/application/index/controller/Index.php
中的index()
方法。
深入理解:仔细看图片中的文件结构来给出对应的url。
我们想要的访问执行/thinkphp5.0/application/alex/controller/Alex.php
中的index()
方法。
首先是访问入口文件:http://localhost/thinkphp5.0/public/index.php
然后加模块名再加控制器名再加触发器名。所以应该url是http://localhost/thinkphp5.0/public/index.php/alex/ALex/index
。(这里末尾的index可以省略。因为默认访问。public后的index.php也可省略,因为apache默认访问。)即可显示alex
。
我们想要的访问执行/thinkphp5.0/application/alex/controller/Alex.php
中的aaaa()
方法。对应的url应该为:http://localhost/thinkphp5.0/public/index.php/alex/ALex/aaaa
。即可显示abex
。
这就是url与thinkphp文件对应的关系。
MCA
M
= M
odule 它对应一个文件夹
C
= C
ontroller 它对应一个文件
A
= A
ction 它对应一个方法(它还有几个名字:触发器、函数、function、method)
每个URL都会对应唯一的一组MCA,这组唯一的MCA会执行特定的function。当用户访问一个URL时,就会执行一个对应的function,我们把一些代码写在这个function中,那么相应的功能就实现了。
thinkphp5数据库操作
怕坑记:在给控制器起名的时候,只允许首字母大写,不允许其他字母大写。。。