>[danger]iWebshop商城是基于MVC架构进行开发的,使用MVC能够把业务逻辑、数据、界面显示分离出来,并且整个商城系统采用了单一入口,系统控制比较灵活。因此在了解iWebShop运行机制之前,我们先看看,什么是MVC,什么是单一入口。 ## 一、MVC > MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: > > * Model(模型)表示应用程序核心(比如数据库记录列表) > > * View(视图)显示数据(数据库记录) > > * Controller(控制器)处理输入(写入数据库记录) > > MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制 > > Model(模型)是应用程序中用于处理应用程序数据逻辑的部分 > 通常模型对象负责在数据库中存取数据 > > View(视图)是应用程序中处理数据显示的部分 > 通常视图是依据模型数据创建的 > > Controller(控制器)是应用程序中处理用户交互的部分 > 通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据 > > MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计,同时也让应用程序的测试更加容易 > > MVC 分层同时也简化了分组开发,不同的开发人员可同时开发视图、控制器逻辑和业务逻辑 以上解释引用自百度知道,简单来说,使用MVC模式, 可以强制输入,处理,输出分开,把应用程序分为视图,控制器,模型三个部件,让它们各自处理自己的任务。这样的做法有利系统开发的分工及系统二次开发维护,提高开发人员的效率。因此,iWebShop系统的优势从架构时就已经建立下来了。 >[info]下面举例说明MVC模式的处理流程,加深对MVC的理解。 ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160719161800.png) 1、用户在浏览器点击一个链接,向服务器发出一个请求,请求首先到“控制器”中去处理,“控制器”中的代码就开始进行业务逻辑判断。 2、“控制器”在做业务处理时,要对数据库进行存取,必须要通过“模型”对数据库进行访问。 3、模型数据返回到控制器中后,控制器继续进行逻辑处理,直至完成,控制器就做页面跳转指令,此时就要控制权交给视图,由视图对网页进行渲染,生成页面返回给用户。 ## 二、单一入口 >[info] 单一入口通常是指一个项目或者应用具有一个统一(但并不一定是唯一)的入口文件,也就是说项目的所有功能操作都是通过这个入口文件进行的,并且往往入口文件是第一步被执行的。  这个比较好理解,就是系统所有的处理通过一个入口文件来运行。比如:iWebShop的根目录,index.php就是入口文件,结构如下: ~~~ <?php //引入核心 $iweb = dirname(__FILE__)."/lib/iweb.php"; //引入配置文件 $config = dirname(__FILE__)."/config/config.php"; require($iweb); //程序开始执行,生成WebApp IWeb::createWebApp($config)->run(); ?> ~~~ ## 三、iWebShop运行机制 介绍完MVC,单一入口的概念,再来说明iWebShop运行机制,那就很好理解了,iWebShop的作者把MVC和单一入口的设计理念结合在一起,并根据自己多年开发商城系统的经验,加入了一些特性,形成了一个核心:iWebCore,IWebShop就是这个核心的基础上开发而来的。 IWebCore运行流程如下: ![](http://it.sunzoon.com/wp-content/uploads/2016/07/20160719171312.png) 1、请求到达统一入口文件,系统先做应用初始化的动作,此时会加载网站配置文件,初始化iWebCore的一些核心类。 2、读取用户的请求,之后URLManager会对URL进行分析,找到指定的控制器的一个Action运行程序。(URL的分析会在控制器的课程中说明) 3、控制器通过调用Model,执行完成之后跳转至视图,由视图完成数据渲染。 4、在视图的渲染过程中会调用Layout,标签等IwebCore的机制。这部分的内容在后续视图的课程中会有详细说明。 >[warning]如有不明白的地方,留言或是加入我们 “三众技术QQ交流群”一起讨论 ## 关于我们 >[danger][三众科技](http://www.sunzoon.com)资讯平台——大道至简,悦你所阅! >本教程由[三众简悦](http://it.sunzoon.com)原创,转载请注明出处,作者:bobball,由bobo整理成看云书籍 三众技术交流群:**543102562** 欢迎大家加入我们,共同讨论IT,互联网技术。同时可以扫描下面的二维码关注我们,谢谢! ![三众科技服务号](http://it.sunzoon.com/wp-content/uploads/2016/06/qrcode_for_gh_401d25b05314_344.jpg)