14、MVC框架第2天 文件分目录 平台概念 类自动加载 初始类

php高级评论47字数 2480阅读8分16秒

1、MVC框架思想

MVC就是编程思想,是一种软件设计的典范,没有任何新知识点;
MVC是一种新的代码的组织方式;
MVC是由Model、View、Controller三个组件构成;
Controller控制器:与客户打交道、程序业务逻辑、调用Model处理数据、调用View展示数据。
Model数据模型:主要负责与数据库打交道,包括:增加、删除、修改、查询等。
View展示数据:对数据进行格式化处理(包装),主要涉及技术:HTML、CSS、JS、Flash等。
一个项目由若干个功能模块构成:学生管理、新闻管理、用户管理;
每个功能模块对应一个控制器类:StudentControll、NewsController、UserController
每个控制器对应一个模型类:StudentModel、NewsModel、UserModel
每个模型类对应一张数据表的操作:student、news、user
每个控制器对应多个视图:StudentIndexView.html、StudentAddView.html、StudentEditView.html

2、MVC流程图

MVC第8个版本:基础控制器类实现

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC8

1、需求分析

将多个子控制器的公共代码,提取出来,放到基础控制器类中,其它控制器再继承基础控制器。
基础控制器类的好处:减少重复代码的编写、方便后期维护、类的层次更加清晰。文章源自国强极客生活-https://tagqwl.com/3356.html

2、创建基础控制器类:BaseController.class.php

3、其它控制器继承基础控制器

MVC第9个版本:学生信息修改

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC9

1、需求分析

在MVC中,修改学生信息,大致分两步:
第1步:显示修改的表单,读取指定学生信息,并填写表单中;
第2步:提交修改的表单,并完成数据的更新工作。文章源自国强极客生活-https://tagqwl.com/3356.html

2、用户操作起点:StudentIndexView.html

3、学生控制器添加edit()方法

4、学生模型类添加fetchOne()方法

5、修改学生信息的视图文件:StudentEditView.html

6、学生控制器添加update()方法

7、学生模型类添加update()方法

MVC第10个版本:文件简单分目录

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC10

1、需求分析

首先,将多个模块的控制器文件、模型类文件、视图文件放在根目录下,显得杂乱无序,不方便管理。
按照MVC思想,对所有文件进行简单目录划分:
Model目录:主要存放各个模块的模型类文件;
Controller目录:主要存放各个模块的控制器类文件;
View目录:主要存放各个模块的视图文件;
Frame目录:主要存放各个模块公共的类文件。文章源自国强极客生活-https://tagqwl.com/3356.html

2、MVC目录简单划分

3、修改index.php

将所有类的包含语句,全部挪到index.php页面。文章源自国强极客生活-https://tagqwl.com/3356.html

4、修改控制器文件中包含视图文件的路径

MVC第11个版本:前端控制器实现

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC11

1、需求分析

前端控制器(请求分发器),就是指index.php!
它的作用就是:决定使用哪个控制器,以及使用哪个方法?
前端控制器有了之后,在每次请求中,都应该包含两个信息:控制器名和动作名。
习惯上,我们不使用像action或controller长长的名称;
控制器名,可使用c来代替;动作名,可用a来代替;
如果没有指定控制器或动作,请用默认控制器或动作来代替
请求格式:index.php?c=控制器名&a=动作名&其它参数
举例说明:index.php?c=Student&a=edit&id=100文章源自国强极客生活-https://tagqwl.com/3356.html

2、修改index.php文件

3、修改视图文件导航栏地址和JS跳转地址

4、修改控制器方法中的跳转到地址

MVC第12个版本:平台概念的引入

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC12

1、需求分析

平台,就是“前台”“后台”“合作方平台”等这样一些概念的总称。
在一个MVC框架结构中,往往都可能有多个相对独立的应用站点,最典型的就是一个网站的前台界面(对外的),和后台管理界面(对内的)。
一个平台,就是一个相对独立的应用(站点,项目)。
有了“平台”概念后,MVC的目录结构,就要进一步扩展了。
引入“平台”概念后,客户的每次请求,必须带3个参数:平台参数、控制器参数、用户动作
Platform称为p参数,controller称为c参数,action简称a参数。文章源自国强极客生活-https://tagqwl.com/3356.html

请求地址:index.php?p=平台&c=控制器&a=动作&其它参数
举例说明:index.php?p=Home&c=Student&a=index文章源自国强极客生活-https://tagqwl.com/3356.html

2、MVC最终的目录结构

3、修改index.php文件

>文章源自国强极客生活-https://tagqwl.com/3356.html

4、修改视图文件导航栏地址和JS跳转地址

5、修改控制器方法中跳转地址

MVC第13个版本:类的自动加载

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC13

1、需求分析

如果客户每次请求,都去包含所有类文件,会造成服务器内存浪费,程序的加载速度会更加缓慢。
我们可以使用类的自动加载,来实现类文件的按需加载,不需要的不用加载。文章源自国强极客生活-https://tagqwl.com/3356.html

2、修改index.php文件

MVC第14个版本:常用目录常量配置

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC14

1、需求分析

常量在任何地方都可以使用,而变量只能在其作用域下使用;
我们把MVC中常用的目录定义成常量,可以简化目录路径的编写。文章源自国强极客生活-https://tagqwl.com/3356.html

2、修改index.php文件

MVC第15个版本:初始类实现

项目文件 全栈教程/03_php高级+mvc/14_mvc_2/MVC15

1、修改index.php文件

2、配置文件:./App/Conf/Config.php

3、创建初始框架类文件:./Frame/Frame.class.php

4、修改基础模型类文件:./Frame/BaseModel.class.php

5、修改数据库工具类文件:./Frame/Db.class.php

文章源自国强极客生活-https://tagqwl.com/3356.html文章源自国强极客生活-https://tagqwl.com/3356.html
weinxin
我的微信
添加我的微信,有任何问题请与我直接联系(备注:国强极客生活)
  • 全部本人精心整理制作,希望大家多多支持。
  • 转载请务必保留本文链接:https://tagqwl.com/3356.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: