很多人学了许久的PHP,但对于框架和CMS的认识比较模糊。
这个其实很重要,应该全面而清晰的认识。本人结合自己多年的开发项目经验,斗胆总结一些,供后来学习者参考:
1各自代表框架代表:ThinkPHP(简称TP,以及它的 版TP5),Laravel,YII,CI,......
CMS:ContentManagementSystem:内容管理系统;代表有:PHPCMS,dedecms,phpMyWind,帝国CMS,Ecshop,ECMall,Discuz,PHPWind
2知识难度框架需要的知识含金量比较高,对面向对象编程思想要深入理解,也要深刻懂MVC原理,单入口原理,标签解析引擎原理,方可以灵活使用框架去开发;
所以它是适应PHP基础比较全面的人;
而CMS不需要那么高深的知识,你稍微懂PHP一些语法,基础东西,就可以依葫芦画瓢的使用CMS开发出一个简单的项目,而且速度还比较快(但是维护起来会头痛)。
CMS对PHP入门级的人是 。
3应用范畴CMS的应用范围有局限,要选对,否则后患无穷。如:某类CMS只适合开发一类项目,选错了可能要重新开发。
比如PHPCMS适合开发文章类型的管理系统,Ecshop适合开发商城类型的项目,Discuz适合开发论坛类型的项目;
但是你如果要用Ecshop来开发论坛,就需要改的地方太多了,那就会走很多弯路....
而框架,因为属于更底层的东西,所以它可以用来开发任何类型的项目。
另外,框架还可以开发CMS出来,但反过来,CMS就不能用来开发框架(会造成性能太低)。
4开发特点在框架中,你可能看不到一个具体的控制器子类文件,所以基于框架的开发,首先要你自己来写控制器文件,还要安排在什么位置写,
这些都有框架自己的规矩,虽然也可以灵活的修改文件夹的位置,但你要麻烦的去寻找为什么。
而CMS等开源系统,这些文件都是帮你写好了的,位置也会帮你安排好,你在那些现成的文件上修修改改基本上就可以了。你会少很多事情。
5灵活对比用框架去开发,你可以随意修改你的项目模块架构,可以随意添加你想要的功能,如:你想在文章系统中添加个旅游模块也可以;
实例:“PHP葵花宝典”项目(娌荤枟鐧界櫆椋庝笓瀹?娌荤枟鐧界櫆椋庝笓瀹?