Archive for 6月, 2012
MVC in php — 框架的成型
一个框架是怎么成型的呢?为什么又要用MVC呢?
传统的php三层架构大致是页面显示,业务逻辑,数据库。
php联通后端数据源(数据库或者其他)然后经过业务逻辑渲染成html给用户(浏览器)
这一做法无可厚非,也是传统CRUD的核心,尽可能将他们拆开,优化,层次分离,便是一个框架需要做到的事情。
还拆?对
最最开始的时候,很多刚入门的程序员都比较钟爱传统的PHP嵌入式开发。
比如
将业务逻辑和前端展示放在一个页面输出,比如上图的index.php,但是文件随着业务逻辑的增长变得越来越大。代码也无法复用,阅读代码也变得异常的复杂。
比如以下这个文件[download id=”42″]
于是乎,聪明的程序员们决定抽出一些公共的函数,公共的配置,放在外面,供大家使用。
目录结构中多了几个文件,showad.php也变小了。但是逻辑依然和视图混合在一起。
但是问题又来了,项目中url越来越多,造成根目录下堆的文件也越来越多,
而且还有一些比如showad.php和showad_admin.php 他们取数据的过程是一致的,只是显示的页面上多了一个括号。本来可以写里面的,但是不知道谁怕改到别的童鞋修改的东西,就又添加了一个新文件。之后修改取得的数据的时候又得两个文件一起修改。来源一致但是显示不一致的问题没有得到解决。
于是大家觉得应该把视图和逻辑分开,把数据获取的工作全分离出来,然后目录结构优化成这样。
统一都从index.php引入,然后通过参数include配置文件,再include app目录对应响应的文件,最后再include view中的展示用的php。
恩恩~,它看起来有点那么个意思了,单一入口,app层控制view显示。module隐含在app里面,其实现在严格的说是没有module层的
接下来就详细介绍下他们的内涵