​ThinkPHP基础概况和Web服务端开发中常用的MVC结构示例
创始人
2024-11-26 07:02:01
0次

ThinkPHP的基础概况和Web服务端开发中常用的MVC结构。

一、入口文件

在浏览器中输入了 http://localhost/tp5_demo/public/

这个URL表示了访问htdocs文件夹下的/tp5_demo/public/index.php文件,这是为什么呢,我们下面来一步步分解。

当我们输入 http://localhost 的时候,Apache就会访问其httpd.conf文件下指定的DocumentRoot路径,在赵童鞋这里就是E:/xampp7/htdocs。

而在后面拼接/tp5_demo/public的意思就是访问DocumentRoot路径下的/tp5_demo/public文件夹。

那么最终为什么会定位到index.php文件呢?这是因为httpd.conf文件里有另一个属性定义DirectoryIndex,这个属性中就定义了index.php、index.html等文件作为入口文件。(啥?你说为啥没图?自己翻你们的httpd.conf文件去)

而在ThinkPHP中,如果没有指定访问地址,默认就会路由到index模块下的Index控制器中的index()方法。

也就是说,输入

http://localhost/tp5_demo/public/

http://localhost/tp5_demo/public/index/index/index

是同样的效果。

二、控制器(Controller)

在MVC架构中,控制器一般只负责如下功能:

参数校验

调用服务

调用模型

输出结果

在ThinkPHP框架中建立控制器只需要在对应的模块中的controller模块中新建一个类。

​ThinkPHP基础概况和Web服务端开发中常用的MVC结构示例

如上图则表示在index模块中建立了Index控制器。

而Index控制器下的index()方法即代表一个Action,在API开发中也就是一个接口,可以通过配置框架的路由URL进行绑定。

需要注意的是,Action中其实不应该出现太多的逻辑操作,Action应该只是作为模型层(Model)和视图层(View)的一个调用者,实际的逻辑操作应该是放到模型层去进行处理,更复杂的逻辑应该放在服务层(Service)去进行处理,这种分层的思想就是所谓的面向切面编程(AOP)。

这样做的好处就是当某个通用操作(如用户登录、计算活动金额)发生变化的时候,只需要在模型中修改代码,并不会影响到调用模型的控制器代码。

而如果把逻辑都放在控制器中,那么一旦需要修改代码的时候,就要把所有关联到的控制器代码全部修改一遍。

见过把所有逻辑放在控制器,完全不用模型的项目,写的时候不需要考虑分层,不需要考虑迭代,爽得很。

三、模型(Model)

模型定义一般为一个模型类对应一个数据表。

服务端开发中大部分的逻辑操作其实就是在Select/Create/Update/Delete各种数据表。

一些简单的逻辑操作,如:获取ID为75的文章数据。应该放在模型中封装为一个方法,在控制器层去进行调用。

ThinkPHP框架为模型提供了许多便捷功能,如:隐藏字段、字段修改器、分页查询、定义关联关系。

我们会在后面再来详细介绍模型与这些功能。

四、视图(View)

视图层就是输出对应的HTML代码。

在框架中可以使用模板引擎(如:ThinkPHP自带引擎、Smarty引擎)来进行变量替换。

但是现在服务端比较流行的都是API开发,通过API传递数据与前端进行交互,比较少使用视图来进行页面渲染。

五、路由(Route)

许多的PHP框架中都具有路由这个功能,甚至在Vue、React之类的前端框架中也加入了路由这个概念。

路由其实就是我们的访问URL和控制器中的Action做了一个映射,如上面提到的:

http://localhost/tp5_demo/public/index/index/index

就是访问index模块中的Index控制器下的index()方法。

我们可以来尝试一下,在Index控制器中加入hello()方法:

​ThinkPHP基础概况和Web服务端开发中常用的MVC结构示例

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...