《传智播客 韩顺平 php核心课程 15(mvc开发模式).ppt》由会员分享,可在线阅读,更多相关《传智播客 韩顺平 php核心课程 15(mvc开发模式).ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、高级软件人才实作培训专家高级软件人才实作培训专家!北京传智播客教育 php进阶-mvc讲师:讲师:韩顺平韩顺平email:qq:2317702760高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平php进阶进阶-内容介绍内容介绍(一)如何在php中显示图片(二)分页技术详解(三)雇员管理系统功能改进(四)网站框架的改进高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平在在php中显示图片中显示图片这个非常简单:在你的www(最好是你的网站目录下,建立一个文件夹,比如imgs).然后将图片拷贝到文件夹下.在php中添加:即可 应用实例应用实例在管理界面显示左边的图片.让
2、我们动手实践以下吧高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平分页技术分页技术 分页是任何一个网站(bbs、网上商城、blog)都会使用到的技术,因此学习b/s开发就一定要掌握该技术.高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平分页技术分页技术我们先讲讲分页的算法:我们需要定义四个变量,它们有各自的用处我们需要定义四个变量,它们有各自的用处pageSize:每页显示多少条记录每页显示多少条记录 pageNow:希望显示第几页希望显示第几页pageCount:一共有多少页一共有多少页 rowCount:共有多少条记录共有多少条记录说明说明:pageSize 是
3、指定的是指定的 pageNow 是用户选择的是用户选择的rowCount 是从表中查询得到的是从表中查询得到的pageCount 是计算出来的是计算出来的 该计算式为该计算式为if(rowCount%pageSize=0)pageCount=rowCount/pageSize;elsepageCount=rowCount/pageSize+1;举例说明:有用户表 共 9条记录:rowCount=9;每页显示3条记录:pageSize=3;那么根据我们的算法:pageCount=3,刚好不多不少如果每页显示4条记录pageSize=4 那么pageCount=3,那么最后一页只有1条记录所以,不
4、管怎样都是正确的高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平分页技术分页技术mysql:select*from 表名表名 where 条件条件 limit 从第几条取从第几条取,取出几条记录取出几条记录(pageSize)sql server:select top 取出几条取出几条(pageSize)字段列表字段列表 from 表名表名 where 字段字段 not in (select top(pageNow-1)*pageSize 字段字段 from 表名表名)以我们前面的以我们前面的employee表为例,显示第表为例,显示第2页,该查询语句就是:页,该查询语句就是:s
5、elect top 3*from employee where userId not in(select top 3 userId from employee)oracle:select*from(select t1.*,rownum rn from (select*from 表名 where 条件)t1 where rownum=从第几条取(pageNow-1)*pageSize+1;高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平分页技术分页技术 应用实例应用实例分页是非常有趣的,我们在employeeList页面增加显示用户信息,并进行分页显示。好!当登录用户的级别是管理员
6、,就在employeeList.php页面显示所有用户信息.lets try it now!高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统功能改进雇员管理系统功能改进 雇员管理系统(版本1.1)在上一讲的雇员管理系统中添加如下功能:version1.1 新增加的功能:1:如何在管理界面显示一张图片2:如何对雇员信息列表分页知识点 1:如何测试sql语句的效率2:分页算法的介绍和实现高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平网站框架的改进网站框架的改进-问题分析问题分析留心的朋友可能看到了程序设计是有不合理的地方:这种方法将界面和业务逻辑放在一起(
7、model1模式),存在以下问题:1:在loginProcess.php 文件和employeeList.php文件中都去操作了数据库,它们的逻辑相似,有重复代码2:整个框架没有清晰的层次关系,显得非常乱.3:代码一点也不优雅,可读性差,可维护性差.高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平Model1模式模式介绍介绍这里我们必须提到,在软件开发中有几个重要的开发模式:1.Model1 模式 2.分层模式(界面、业务逻辑分离)3.mvc模式(php中有很多mvc框架 zend framework thinkphp cakephpyii.)Model 1的最重要的特点就是没有
8、分层的概念,也就是说吧界面显示和业务逻辑的处理放在一个文件中来完成。Modle1模式的缺点:1.表现层和业务逻辑层混合在一起(乱!)2.在开发过程中,不利于多人的协同开发3.不利于后期的维护 Model1模式的优点:1.简单,开发速度比较快。2.比较适合开发小的项目。高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平改进方案改进方案:分层开发模式分层开发模式通过对问题的分析,我们可以对程序进行改进:1:进行分层(界面层、业务逻辑层)即:model1转为 界面层用php、业务逻辑层用类(类中封装业务操作)。2:将常用的代码(比如连接数据对数据库的操作),封装到类中。这里我们改进完后,
9、有心的朋友会发现,呵呵,代码真的变得清晰了,感觉有能力编写较大的网站,好!让我看看如何改进。(框架图)一个名词:一个名词:有些书上把这种分层模式有些书上把这种分层模式称为称为:mv模式,即:模式,即:m-model模型模型(业务逻辑业务逻辑层层,-类类)v-view视图视图(界面层界面层,php)高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 分层开发模式分析通过前面的修改,我们的系统框架在可读性、维护性和扩展性上有了明显的改善,从上面的案例来看,我们似乎看到一个近乎完美的开发模式,也就是分层开发(界面、业务分离)模式:login.p
10、hp输入数据,loginProcess.php通过调用service类(模型)处理业务,employeeList.php显示数据。啊,这是一种多么完美的开发模式。但是我们细心的分析一下发现还有不足的地方:1:empList.php 页面充当了界面,同时又去响应用户的各种请求,当请求过多时(这种需求在大型项目是很多的),该页面的结构就遭到破坏,也就是说代码比较乱。2:高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 改进方案改进方案:mvc开发模式开发模式模型(M)视图(V)控制器(C)(MVC)是Xerox PARC施乐帕克研究中心在八
11、十年代为编程语言Smalltalk80发明的一种软件设计模式,至今已被广泛使用。MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。MVC的各个字母分别是M(model模型)、V(view视图)、C(controller控制器)。M 主要由 类 来做,用于处理具体的业务逻辑.V 由php来做,主要用于做界面(即显示数据)C 有php来做,用于去响应用户的各种请求(比如增,删,改.)高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 如何理解如何
12、理解 mvc开发模式开发模式(理论版理论版)高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 如何理解如何理解 mvc开发模式开发模式(简单理论版简单理论版)视图视图php控制器控制器 php模型模型(类类,比如比如XxxService)视图视图(php)http 请求请求 调调用用跳转跳转数据库数据库操操作作调调用用调调用用 应当尽量减少php对 模型类(XxxxService类)的直接调用高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 改进方案:mvc开发模式通过对问题的分
13、析,我们可以对程序进行改进:1:增加 控制器即:EmployeeProcess.php 响应对employee表的各种操作,充当控制中转的优势。2:在控制器(EmployeeProcess.php)中去调用模型(model)去完成操作。这里我们改进完后,有心的朋友会发现,呵呵,代码真的变得更加清晰了,感觉有能力编写大型的项目,代码的可读、扩展、维护性进一步加强了(看看框架图,我们开始吧!)高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 如何理解 mvc开发模式(通俗版)方便面拣菜拣菜封包封包 成品成品使使用用工工具具使使用用工工具具高
14、级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 mvc开发模式小结现在我们总结MVC的处理过程:首先控制器接收用户的请求,并决定应该调用哪个模型(Service/)来进行处理然后调用模型用来处理用户的请求并返回数据最后控制器用相应的视图显示模型返回的数据,并通过浏览器呈现给用户。高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平雇员管理系统框架再改进雇员管理系统框架再改进 mvc开发模式缺点开发模式缺点MVC是优秀的设计思想,但是它也存在缺点:1.工作量增加了。由于开发者将一个应用程序分成了三个部件,所以使用MVC同 时也意味着你将要管理比以前更多的文件,这一点是显而易见 的。这样好像我们的工作量增加了,但是请记住这比起它所能 带给我们的好处是不值一提。2.不适用小型项目,否则就是机关枪打蚊子。3.调试应用程序难度加大。mvc提倡模型和视图分离,这样也给调试应用程序到来了一定的 困难。每个构件在使用之前都需要经过彻底的测试。一旦你的构 件经过了测试,你就可以毫无顾忌的重用它们了。高级软件人才实作培训专家高级软件人才实作培训专家!主讲 韩顺平web-service 概念介绍概念介绍高级软件人才实作培训专家高级软件人才实作培训专家!