【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中只是给大家讲解了很简单、很固定的约定规则。具体的规则及参数配置,可能需要大家再深入学习。

 

目录
相关文章
|
9月前
|
缓存 前端开发 PHP
一些常用的PHP MVC框架
PHP有很多流行的MVC框架可供选择,以下是一些常用的PHP MVC框架:
|
开发框架 JavaScript 前端开发
谈谈ASP、PHP和JSP的优缺点,底层原理是什么?
谈谈ASP、PHP和JSP的优缺点,底层原理是什么?
190 0
|
PHP
【web 开发基础】PHP的流程控制之单一分支结构-PHP 快速入门(12)
流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,是程序的核心部分。可以说,缺少了流程控制,就不会有程序设计语言,因为没有哪一种程序只是线性的执行语句序列。程序中需要与用户相互交流,需要根据用户的输入决定执行语句序列,需要有循环将代码反复执行等操作。这些都少不了流程控制。在任何程序设计语言中都需要支持满足程序结构化所需要的三种基本结构:顺序结构、分支结构、和循环结构;没有这些流程控制,编程会变得更加机械,犹如人没有了灵魂。
91 1
|
SQL 前端开发 程序员
Laravel和Thinkphp有什么区别,哪个框架好用
Laravel和Thinkphp有什么区别,哪个框架好用
696 0
|
前端开发 PHP 搜索推荐
PHP之简单实现MVC框架
PHP之简单实现MVC框架   1.概述   MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
816 0
|
前端开发 PHP
PHP的MVC框架 深入解析
原文:PHP的MVC框架 深入解析 本篇先介绍一下php的MVC实现原理,我们框架的MVC部分也是基于此原理实现的,但是今天的代码并不是框架内的代码,仅仅为说明原理     一、文件结构 建立3个文件夹 controller文件夹存放控制器文件 view文件夹存放视图文件 model文件夹存放数据文件 建立1个index.
1059 0
|
Web App开发 前端开发 PHP
使用 CodeIgniter 框架快速开发 PHP 应用(五)
原文:使用 CodeIgniter 框架快速开发 PHP 应用(五)简化 HTML 页面和表格设计这一章介绍了又一个节约你的时间而且使你的代码更具安全性和逻辑性的领域。第一,我们将会介绍创建视图的各种不同方法-与你的控制器和模型协同并用来显示结果的页面。
1168 0
|
SQL 关系型数据库 PHP
使用 CodeIgniter 框架快速开发 PHP 应用(四)
原文:使用 CodeIgniter 框架快速开发 PHP 应用(四)使用 CI 简化数据库开发你学习CI 是因为你想要使编程更容易和更有生产力。这一章讲述CI的Active Record类。 如果CI只提供一个Active Record类,它还是物超所值的。
1307 0