经过近一个月对MVC的研究,自己也通过网上有朋友的指导,有了一套自己的MVC流程及框架,但是感觉缺限还是很多,灵活性方面还是欠缺,但又不知道怎么样的具体改进,今天我就把我的流程及思想发布,希望有高人能够指点指点。

     
 金沙城中心赌场,MVC全名是Model
View
Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

一、入口

     
 MVC虽然给了我们一套使用参考方案,同时也应用的很多,但是,在使用的过程中会发现,如果用controller来整合model+view,那么,对于一些相应的业务处理逻辑,将会使得整个controller非常的拥挤,很多的时候,可能写的代码由于都拥挤在controller里面,造成阅读方法时,非常不便,甚至,我看到有的同事,在一个controller里面写上两三千行的代码,如果业务需要,还得更多,这是非常不好的风格。其实一个controller里的代码,最好控制在500以内,尽量不要超过800行。

入口文件可以是单文件也可以是多文件,我现在用的基本属多文件,但是入口文件内容基本都是一样,为以后的修改其它的入口方式做基础,

       
曾问过好几个同事,你们对MVC怎么理解,以及觉得应该如何使用,回答的惊人一致,模型(model)-视图(view)-控制器(controller),很官方的,其实也没有错,但是在谈到使用的时候,他们更多只是在controller里面整合model+view,然后在里面写各种交互,各种业务逻辑处理,于是乎,在查看他们的代码中,就能经常看到动则两三千行的代码,这对后期维护是一个非常头疼的问题,尤其是对于后期接手的人员,简直等于谋杀,所以在我项目组里,我都要求他们去不断的优化自己的代码,争取做到,单个controller类里不能超过800行,刚开始的时候,对他们来说,是件很烦琐的事情,尤其是以前就没有考虑过如何去做,于是我给他们提出方案,在原因的模式中,再添加一个专门处理业务逻辑的类,同时创建类方法进行处理。于是,controller里面的代码量,呈直线下降,而且阅读起来也方便很多。

1 <?php   2     require 'command/config.php';  3     require 'command/app.php';  4     app::run($config);  5 ?>

学习是一种过程,我们在学习的过程中要善于发现不足,同时去寻找更有效的解决方法,交流才能进步,第一次写文章,下篇写最近一个项目中使用runtime搭建的一个高度解耦的框架,如有不同见解,欢迎留言!

首先不用说大家也看得出来,加载系统配置文件,然后通过引擎来加载系统配置。

二、引擎

 1     public function run($config){   2         header("Content-type:text/html;charset=utf-8");   3         self::$config = $config;    //加载系统配置   4         self::copyright();   5         self::testsystem();            //系统环境   6         self::setsystem();            //设置系统参数   7         self::incinfo();   8         if(!keheng_IN_WEB){exit('网站正关闭维护中,请稍候访问!');}   9         defined('KEHENG_DEBUG') or define('KEHENG_DEBUG',true); // 是否调试模式  10           11         self::setpath();            //设置系统路径  12         self::getdatabase();        //测试数据库  13         self::loadlib();            //加载库  14         self::getRouteConfig();        //运行路由并加载控制器  15     }

引擎里面首先设置配置文件,再测试系统参数,加载系统模块,取得配置在的网站信息文件,设置网站需要的路径,测试系统配置里面的数据库参数,加载库文件,最后是加载路由获取请求地址。不知道这样的流程对不对,只是我根据自己的学习自己编写的一套而已,但里面却缺少缓存,具体缓存应该怎么样的设置。
这里的数据库测试是根据配置用哪一类型的数据库,再加载对该类型数据库操作的封装文件。

三、路由

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图