MVC第一课
2021-06-22 03:02
标签:load 加载 系统 修改 代码 相对 纯粹 连接数 文件上传 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 Model:模型 应用程序中用于处理应用程序数据逻辑的部分。 凡是跟数据操作有关的内容都属于数据逻辑:只要与SQL指令有关,那么都属于模型(数据逻辑) 在MVC中:所有的SQL指令都应该存在于模型组件中。 View:视图 应用程序中处理数据显示的部分。 视图:template(模板),用来承载数据的容器,通常是HTML文件(显示[HTML],美化[CSS]和效果[JavaScript]) Controller:控制器 应用程序中处理用户交互的部分。 控制器:也叫作模块(Module),是用来与用户直接接触的脚本代码(浏览器直接提交给PHP的脚本对象),判断用户操作的逻辑性。 控制器:在需要的时候,可以调用模型来进行数据处理(数据库操作) 控制器:在需要的时候,可以调用视图来进行数据显示(加工美化) MVC的本质是将代码进行分离:显示数据部分(View),处理业务部分(Controller)和数据操作部分(Model) 1、 符合人类分工协作的模式(思维模式) 2、 利于代码的维护:前端(HTML)与后端(PHP)的分离 1、 PHP与HTML嵌入到一起:混合开发阶段 优点:效率高 缺点:代码重用性低(不利于维护) 2、 PHP与HTML分离开来(两个脚本):模板技术 优点:前后端开发人员分离,利于代码的维护 缺点:效率相对于混编较低,PHP后端代码复用性比较低 3、 PHP中业务部分与数据操作部分再次分离:MVC思想 优点:代码分离完整,利用代码重复利用 缺点:服务器要操作多个文件完成一个请求(效率最低) 效率低:指的是相对于混编模式,从计算机的高效运作来说,再对比网络延迟,效率的降低对于用户而言是感受不到。 浏览器—》发起请求—》服务器PHP接收请求—》PHP处理(业务逻辑判断,数据库操作,显示数据)--》返回给浏览器 在MVC设计思想中:至少有三个文件才能服务一次请求(控制器,模型,视图) 1、用户通过浏览器发起请求 2、PHP接收请求:对应的脚本必须是控制器脚本 2.1 控制器判断用户是否操作恰当 2.2 控制器调用模型获取数据 2.3 控制器调用视图显示数据(输出) 3、PHP返回请求响应结果:控制器 将MVC思想设计的项目,按照完整的请求走一遍 1、 用户浏览器输入URL:PHP脚本(控制器) 2、 服务器控制器脚本接收请求 2.1 业务逻辑判断 2.2 调用对应的模型:一个模型负责一张表对应的所有SQL操作 2.2.1 模型需要公共代码 面向过程:封装公共函数 面向对象:用类来封装公共代码(连接认证):模型继承公共模型 2.2.2 模型封装每一种数据逻辑:一个逻辑一个方法 2.3 控制器拿到数据(校验) 2.4 控制器加载模板(视图)来显示数据:显示的过程就是输出 3、 返回结果给用户 项目单一入口:一个项目只有一个入口(用户唯一可以通过浏览器进行访问的文件) 1、 一个项目只要定义一个入口文件:index.php/admin.php/home.php 所有的用户都只能允许访问index.php 2、 “入口文件”来决定去访问对应的哪个控制器 进行很多的判断(系统初始化):单独成立一个文件 入口文件:加载并运行初始化文件 3、 初始化文件中来决定访问哪个对应的控制器 3.1 字符集设定 3.2 常量设定(目录) 3.3 系统设定 3.4 自动加载设定 3.5 初始化URL(从“URL”中获取数据):控制器和控制器类中的具体方法 3.6 加载配置文件 3.7 分发控制器 4、 控制器处理MVC工作流程 4.1 业务逻辑判断 4.2 调用模型操作数据库 4.3 调用视图显示数据 5、 结果最终是一层层返回 Index.php->初始化文件->控制器->模型和视图 模型和视图->控制器->初始化文件->index.php->返回浏览器 网站根目录下:应该有哪些对应的文件夹和文件 1、 入口文件:index.php 2、 应用程序目录:App文件夹,存放与当前应用有关的内容(MVC对应的文件) 3、 核心目录:Core文件夹,存放一些核心文件的(初始化,公共核心文件) 4、 Web资源目录:Public文件夹,存放的就是当前应用所需要的一些资源(样式、JS和图片等) 5、 插件目录:Vendor文件夹,存放的是一些外部提供好的完整功能的脚本(Smarty,验证码,图片上传等) 6、 配置目录:Config文件夹,存放配置文件(有可能内部再分层) 7、 文件上传目录:Upload文件夹,存放用户上传的文件 应用程序目录:MVC对应的文件的存储 通常:一个网站分为前台和后台 1、 建立两个对应的文件夹,分离前后台业务:Home/Back,Home/Admin 2、 对应的前后台之下,都会有对应的MVC,在对应的文件夹下,再次创建分层文件夹Controller/Model/View 注意:很多时候,前后台业务不一样,但是数据操作基本差不多,基于这种情况,会将Model文件夹提升,在App目录下,与对应的前后台文件夹同级 Web资源目录:管理对应的样式,图片和js效果,在Public目录下,创建三个对应的文件夹即可。 入口文件:index.php,本质要做的事情非常简单 1、 实现入口设定:安全限定(只有访问index.php入口文件才有可能访问其他文件夹中的资源) 原理:在入口处定义一个常量,然后在其他文件中判断常量是否存在:存在即可访问,不存在不允许访问。 2、 引入系统初始化文件 3、 让系统初始化文件执行 1、 搭建一个虚拟主机 2、 重启apache 3、 修改本机Hosts文件 要求 1、 文件需要使用命名空间(所有类文件) 2、 文件需要权限判定(所有类文件) 3、 一个功能应该是一个单独的方法 1、 run方法:运行方法 2、 初始化字符集:initCharset 3、 初始化目录常量:initDirConst 4、 初始化系统设置:initSystem 控制对应的错误显示级别,以及是否显示 Ini_set(选项,值) 5、 初始化配置文件:initConfig 6、 初始化URL:initURL 7、 初始化自动加载:initAutoload 7.1 加载方式自定义:Core/Controller/Model/Vendor 7.2 利用spl_autoload_resiter来进行自动加载 7.3 所有的类都是由命名空间控制的:系统寻找类的时候会带着空间寻找(不是一个纯粹的类名):在加载的时候,一定要去除空间 8、 分发控制器 功能:业务逻辑处理,调用模型获取数据,调用视图显示数据 控制器调用模型 控制器调用视图显示数据 模型:连接数据库,进行SQL操作,数据解析 创建模型:一张表(数据)对应一个模型 模型要做的事情:连接认证(?),组织SQL指令,执行SQL指令,解析SQL执行结果 视图:本质就是显示数据(已有数据) 增加视图文件 在视图中解析数据 MVC第一课 标签:load 加载 系统 修改 代码 相对 纯粹 连接数 文件上传 原文地址:http://www.cnblogs.com/ahao123/p/7172085.htmlMVC设计模式
MVC概念
MVC三大组件
模型
视图
控制器
MVC模式意义
代码发展史
MVC工作原理
PHP脚本工作原理
MVC工作原理
MVC模式的工作流程
项目单一入口实现
创建目录结构
规划框架目录
规划应用程序目录
规划Web资源目录
入口文件
搭建运行环境
应用程序初始化类文件
控制器组件
模型组件
视图组件
下一篇:上传图片进行预览