框架是什么概念
PHP框架,英文为Framework,关于其定义,这里给出了一些解释。
这些定义各有千秋,可是太抽象,在我看来,框架就是指仅含基本结构的PHP网站。
虽然这个定义不太严谨,但仍旧是足够准确的,非常直观清晰具体。
泛泛而谈等于不谈,就这么说一个定义,理解起来还有些茫然。
要说清它是什么,弄明白它是如何产生的就行了。
接下来就模拟一次框架的诞生过程,就样我们就能理解框架到底是什么啦!
从HTML开始
框架是用来做网站的,所以我们就从做网站入手。
首先要有一个HTML页面。
静态HTML站
我们需要做的是一个网站,一个页面不够用,至少要有五个:
首页
列表页
内容页
关于页
联系方式页
可复用PHP页面
这五个页面有一些内容是一样的,比如说页面头部(header),足部(footer)。
我们就把这些内容抽出来,这样就有了可复用的页面。
这就是PHP静态网站。
内容管理系统(CMS)
我们要将现在这五个页面拓展成博客网站,实现以下功能:
可以自由地添加文章
文章存在数据库中
可以对文章进行分类管理
结构说明
内容管理系统(CMS)不同于简单地复用PHP页面,它有较复杂的结构:
列表页、内容页是可复用的,就将其变成模板文件
增加一个管理页面,能读取我们的输入,再替换模板文件,生成最后的页面
增加对数据库的增删改查功能
网站的结构变成了三层MVC,这就是内容管理器(CMS)。
新的需求
现在我们不光想做博客网站,还想做购物网站,工具类网站。对于这些网站,本质上仍属于内容管理,都能用内容管理系统(CMS)来实现。
艰难的二选一
我们要实现新的需求,可以有以下两种做法:
根据需求从头到尾重新写一个内容管理系统(CMS)
使用已有的内容管理系统(CMS)做定制开发
第一种做法:如果自己写一个内容管理系统(CMS),一切从头开始,费时费力;
第二种做法:使用现成的内容管理系统(CMS)来进行定制开发,还需要了解这个CMS的源码,同样很麻烦。
框架的诞生
能否有一种简化的内容管理系统(CMS),去掉所有的模板,界面内容,仅保留对于数据库的交互,和自动生成页等易于拓展的基础功能?
这个简化的CMS就是原来CMS的基类合集,框架的概念就诞生了。
它是仅仅保留了MVC结构的CMS,相比CMS,开发的灵活性更大,同时又可以节省开发时间。
关于不严谨的说明
以上就是不够严谨的框架说明。
既然不严谨,为什么还要列出来呢?
因为框架的抽象不同于其他抽象概念,它并非某个人或机构提出来的有标准的东西,而是随着互联网发展,被不断出现的新框架不断地被更新出来的。
所以对于像框架这种没有标准的概念,只能是不断地通过不严谨的说法来进行修正。