0

0

你必须了解的ThinkPHP框架入门知识

silencement

silencement

发布时间:2019-11-23 15:50:50

|

4642人浏览过

|

来源于juejin.im

转载

你必须了解的ThinkPHP框架入门知识

本章我们主要讲解thinkphp的基础概况和web服务端开发中常用的mvc结构。

一、入口文件

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

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

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

立即学习PHP免费学习笔记(深入)”;

而在后面拼接/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模块中新建一个类。

ba64b68a2e40e9e5c1058739db38d4a.gif

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

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

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

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

Android 基础知识入门 pdf版
Android 基础知识入门 pdf版

Android 基础知识入门 pdf,介绍什么是Android、Android可以完成的功能、Android架构、Android应用程序框架、Android函数库等,从开始安装Android开始,到环境配置,到一步步编写复杂的应用程序,本书将带你了解基础但有内涵的Android入门知识。

下载

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

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

三、模型(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()方法:

e5ba68a4697f30ef1a584ba5a4edbbb.png

六、总结

本章我们介绍了现在流行的MVC三大件的基本用途,以及路由的概念。

童鞋们应该大概掌握了一个后端接口的工作流程,也就是:路由->控制器->模型(->视图)。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

4

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

3

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

10

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

33

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

15

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

42

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

7

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

6

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Django 教程
Django 教程

共28课时 | 3.1万人学习

React 教程
React 教程

共58课时 | 3.7万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号