【PHP】thinkPHP6中的MVC思想的小案例

简介: 【PHP】thinkPHP6中的MVC思想的小案例



 

前言

       最近在给学生讲课时候,想找个最简单thinkphp框架案例,来给学生们演示一下MVC思想的具体应用,但从网上找了好久,仍旧没有找到一个满意的案例。没办法,自己只能结合thinkphp6的官方文档动手写了一个简单的demo,以便在上课时候,能够让学生快速理解MVC的思想应用,增强动手能力。由于thinkphp框架主要是基于MVC思想的,所有,本演示demo对thinkphp初学者来说,也是一个非常好的应用案例。

第一步        知识内容回顾

1、什么是MVC

       所谓的MVC指的是Model、View、Controller三个单词的首字母缩写。而MVC框架为开发者在设计应用程序的时候提供了一个基本的思想。通过MVC思想,我们可以把软件分割成3个部分,即Model、View和Controller,经过这样的分割后,我们就可以将数据操作和视图展示进行代码分离,便于逻辑区分,而M层和V层之间的联络,我们就可以通过在C层中设计自己的逻辑来实现。这样分割后,各个部分模块的分工就很明确了,其中的每个模块都只负责整个数据处理流程的一个部分功能。具体来说:

       V(View)指的是视图层,即展示给用户的软件界面,主要用来与用户进行交互,比如说,按照一定方式展示数据,或者给用户提供一个控件来接受用户的操作。

       M(Model)指的是模型层,这个模块主要用来实现与后台数据库的数据交互,比如说,对数据库的增删改查等基本操作。

       C(Controller)指的是控制层,这个层处在M层和V层之间,主要用来接受V发送过来的请求并根据请求给出响应结果,如果需要操作数据库,则直接转发响应操作到M层即可。这一层并不会进行实质业务的处理。

       三者之间的联系图如下:

2、thinkphp框架

       ThinkPHP框架是一个快速、兼容而且简答的轻量级国产的PHP开发框架,能够简化企业级应用开发和敏捷WEB应用开发。thinkphp使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

       thinkphp6.0的框架结构如下图所示:

第二步        提前准备工作

1、运行环境的搭建

1.1、phpstudy安装

       由于PHP环境配置相对比较复杂,因此,我们采用phpstudy这样一个PHP程序集成包来快速完成基础环境搭建。phpstudy程序包中集成了Apache、PHP、MySQL等,可以实现一次安装、无需配置即可。具体安装操作请参考官网:www.xp.cn。

1.2、composer安装(windows下)

       由于thinkphp从6.0版本开始,要求必须通过Composer方式来实现安装和更新,所以在安装thinkphp6之前需要先安装composer。具体安装操作可以参考官网:www.phpcomposer.com。

1.3、thinkphp6安装

       打开WEB根目录。具体操作:找到phpstudy的安装目录,打开其路径下的WWW文件夹,这一层即是我们所要运行的web根目录。在该目录下的地址栏中输入cmd,然后回车,打开命令行界面。具体操作如下:

       在打开的命令行界面中,输入如下命令:composer create-project topthink/think tp6,其中tp6是自己定义的网站名字。这个目录就是通常所说的应用根目录。

2、数据库的创建

       通过phpstudy实现本demo中所用到的数据库的创建。具体操作为:首先打开phpstudy软件,在【首页】栏中启动Apache和MySQL两个,然后,切换到【数据库】栏中,点击上方的【创建数据库】,录入相关信息后,点击确认。如图所示:

       返回【首页】,点击【数据库工具】,选择里面的phpMyAdmin(如果没有安装,请在【软件管理】栏中安装),用刚才创建的用户名和密码进行登录。

       登录成功后,在spd数据库中创建名为score的数据表,表中结构及数据如图所示(也可以通过下载文后的资源,把相关数据库导入进去):

第三步        MVC下的小案例(demo)

1、创建应用目录结构

       在应用根目录下(即上面所说的tp6目录下),打开app目录,然后在里面分别创建controller(已经存在了不用创建)、model、view三个目录。这样就完成了demo应用的目录结构创建。如图所示:

2、C:controller文件的构建

       在controller目录下,创建Index.php文件。并在其中编写如下代码:

       注意:

       (1)文件中的类名,要跟创建的文件的类名保持一致,按照驼峰法进行命名(即首字母大写)。

       (2)在类中定义的index()方法代码解读:

         第一句代码:是创建Score对象。该Score类是在下面的model中定义的,所有类上面有use app\model\Score;这个语句类引入。

         第二句代码:是调用Score对象的getUserName()方法来获取用户名的,其中传入的参数是用户的uid。

         第三句代码:是给View视图进行全局赋值的,把获取到的$name变量的值,赋值给name,供View视图层来使用。

         第四句代码:是把第三句的变量注入到View视图层中。

3、M:model文件的构建

       在M层上,我们要操作MySQL数据库中的数据,所以要先完成与数据库的连接。首先找到应用根目录下(tp6目录下)的.example.env文件,进行重命名为.env文件(直接操作可能无法更改,可以通过应用程序打开后重命名)。具体的数据库连接配置为:        

       在完成文件重命名后,打开.env文件,并在里面配置好数据库的连接。以上面创建的数据库为例,具体的数据库连接配置为:

       在完成相关配置后,进入到model目录下,创建Score.php文件。并在其中编写如下代码:

       注意:

       (1)在model目录中定义的文件名,要跟数据库中表的名字保持一致,并且首字母大写,同时,也要与文件中定义的类名保持一致。这是thinkphp模型中操作数据库表的一种规则。

       (2)在类中定义的getUserName()方法代码解读:

               第一句代码:调用自身对象去查询数据库中uid=181101的记录,并通过toArray()来转换成数组。

               第二句代码:返回查询结果中的uname字段的值,读取方式按照数组的写法来用。其中的uname对应数据库中score表中的uname字段。

4、V:view文件的构建

      由于thinkphp6中仅仅内置了PHP原生模板引擎,所以,我们需要单独安装think-view模板引擎驱动。找到应用根目录(tp6目录下),打开命令行界面,运行如下命令,即可完成安装。

       composer require topthink/think-view

       完成安装后,在view目录下,创建一个Index文件夹,并在里面创建一个index.html文件,完成代码编写。如图所示:

       注意:

       (1)在view目录下的规则:要对用controller中的文件,一个controller中的文件对应view下的一个文件夹,其中view下的文件夹名字要跟controller中的文件名字保持一致。

       (2)在view/Index目录下的index.html命名说明:html文件的命名可以对应到controller中的相应方法上,两者保持一致,这样在使用View::fetch(参数)时,参数就可以省略不写了。

 

总结语

       thinkphp框架中的MVC模式里面涉及到很多约定好的规则,比如controller中类文件的命名要跟其中的类名保持一致,也要跟view视图中的目录保持一致等。demo中只是给大家讲解了很简单、很固定的约定规则。具体的规则及参数配置,可能需要大家再深入学习。

 

目录
相关文章
|
7月前
mvc.net分页查询案例——实体层(HouseModel.cs)
mvc.net分页查询案例——实体层(HouseModel.cs)
|
7月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
|
7月前
mvc.net分页查询案例——PagerExtension
mvc.net分页查询案例——PagerExtension
|
7月前
mvc.net分页查询案例——PagedList
mvc.net分页查询案例——PagedList
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
2月前
|
前端开发 Java
【案例+源码】详解MVC框架模式及其应用
【案例+源码】详解MVC框架模式及其应用
147 0
|
4月前
|
前端开发 网络安全 PHP
PHP代码审计之MVC与ThinkPHP简介
PHP代码审计之MVC与ThinkPHP简介
44 2
|
3月前
|
设计模式 前端开发 PHP
PHP中实现简易的MVC模式
【8月更文挑战第31天】 本文将引导你了解如何在PHP中应用MVC(Model-View-Controller)架构模式,通过一个简单的例子展示其实现过程。我们将从基础的概念出发,逐步深入到代码实践,最终让你能够自己动手构建一个简易的MVC框架。文章不仅提供理论知识,还包含具体的代码示例,帮助你更好地理解并运用MVC模式。
|
6月前
|
JSON 前端开发 Java
Springboot mvc开发之Rest风格及RESTful简化开发案例
Springboot mvc开发之Rest风格及RESTful简化开发案例
69 2