文档章节

深入认识PHP的框架和CMS的关系

 宁哥实战课堂
发布于 2017/04/28 15:53
字数 1620
阅读 11
收藏 0

很多人学了许久的PHP,但对于框架和CMS的认识比较模糊。

这个其实很重要,应该全面而清晰的认识。本人结合自己多年的开发项目经验,斗胆总结一些,供后来学习者参考:

1:各自代表

深入认识PHP的框架和CMS的关系

框架代表:ThinkPHP(简称TP,以及它的最新版TP5),Laravel,YII,CI,......

CMS:Content Management System:内容管理系统;代表有:PHPCMS,dedecms,phpMyWind,帝国CMS,Ecshop,ECMall,Discuz,PHPWind

2:知识难度

深入认识PHP的框架和CMS的关系

框架需要的知识含金量比较高,对面向对象编程思想要深入理解,也要深刻懂MVC原理,单入口原理,标签解析引擎原理,方可以灵活使用框架去开发;所以它是适应PHP基础比较全面的人;

而CMS不需要那么高深的知识,你稍微懂PHP一些语法,基础东西,就可以依葫芦画瓢的使用CMS开发出一个简单的项目,而且速度还比较快(但是维护起来会头痛)。

CMS对PHP入门级的人是最爱。

3:应用范畴

深入认识PHP的框架和CMS的关系

CMS的应用范围有局限,要选对,否则后患无穷。如:某类CMS只适合开发一类项目,选错了可能要重新开发。比如PHPCMS适合开发文章类型的管理系统,Ecshop适合开发商城类型的项目,Discuz适合开发论坛类型的项目;但是你如果要用Ecshop来开发论坛,就需要改的地方太多了,那就会走很多弯路....

而框架,因为属于更底层的东西,所以它可以用来开发任何类型的项目。

另外,框架还可以开发CMS出来,但反过来,CMS就不能用来开发框架(会造成性能太低)。

4:开发特点

深入认识PHP的框架和CMS的关系

在框架中,你可能看不到一个具体的控制器子类文件,所以基于框架的开发,首先要你自己来写控制器文件,还要安排在什么位置写,这些都有框架自己的规矩,虽然也可以灵活的修改文件夹的位置,但你要麻烦的去寻找为什么。

而CMS等开源系统,这些文件都是帮你写好了的,位置也会帮你安排好,你在那些现成的文件上修修改改基本上就可以了。你会少很多事情。

5:灵活性对比

深入认识PHP的框架和CMS的关系

用框架去开发,你可以随意修改你的项目模块架构,可以随意添加你想要的功能,如:你想在文章系统中添加个旅游模块也可以;实例:“PHP葵花宝典”项目(www.phpkhbd.com)就是用框架开发出来的,可以方便的添加任何想要的功能。

但CMS你要想做到这种穿插功能交集就比较麻烦了。

6:速度对比

深入认识PHP的框架和CMS的关系

用框架去开发,开发的时候速度慢,但后续修改灵活,同时速度会很快,遇到问题可以马上知道处在哪里了,可谓是“一步到位、一针见血”。

用CMS去开发:开发的时候速度快,但后续修改特别是添加功能模块的时候,就不够灵活,会造成速度很慢,甚至不大可能实现。

打个比方:你用框架开发的项目,开发的时候可能需要2个月,但你后续升级项目,添加个什么功能可能只要1个星期。而你用CMS去开发,开发项目上线可能只要3个星期,但是你升级功能、添加新功能模块、可能也要3个星期甚至更多,还有可能实现不了,或者强加进去会造成该模块性能甚至整个系统的性能大大降低。而且每次升级都是这样。

所以,该如何选择,你应该清楚了吧:如果想做一个长久更新的项目,那使用框架去开发是最好的选择。

最后用一个比喻来总结:建房子

用框架去开发项目,相当于你会起房子;

但是你要做的事情要从这里开始做:你要先给房子打基脚(基脚要挖几米你要计算好)、房子有几根柱子撑起你要计算承受力,每层楼盖几个房间你也要计算好,每间房间怎么布局也要你来做。这些都做好了,然后你才来安装窗户,粉刷墙壁,贴墙纸...

用CMS去开发项目,相当于你只会装修房子;

至于房子的基脚有多深,房子是几层楼,每层楼的房间格局、玻璃的安装窗口你都控制不了。但是你要做的事情也很省事:你要做的事情就是在可以安装玻璃的地方安装什么牌子的玻璃(但是你不能修改该窗口是朝东开还是朝西开,因为这是建房子的人决定了的),刷白色或者红色的墙壁、贴什么内容的墙纸(美女型或者森林型,由你定).....

这两种结果谁好谁不好,要看你的兴趣爱好了。如果你是个有个性的人,你可能就崇尚能建房子的能力,如果你是比较懒惰的人,你可能崇尚那些只要装修的房子让你装修就进去住了。

特别说明的是:如果房子的创建有问题,比如你想把一层楼创建4个房间改成5个房间,那就只能是有创建房子能力的人重新改造房子了,简单的装修工人是没有权利的。框架开发就是有改造房子的权利...

而你如果还是装修房子中更为简单的工作,比如只写模板,只套模板,那你就相当于连电脑桌都要老板准备好,你只是在电脑桌上怎么摆放你的电脑、鼠标、键盘而已,那种“家具齐全、直接拎包入住的酒店”就是最好的代表......

© 著作权归作者所有

粉丝 5
博文 72
码字总数 77184
作品 0
长沙
其他
私信 提问
2017.3.3

上午 1.搭建开发环境 2.初步认识jfinal 下午 1.深入认识jfinal,熟悉各个组件之间的关系,弄明白框架大致的运转流程。

seventeenW
2017/03/03
2
0
【北京】互联网公司招聘【php 开发】【猎头招聘】

职位描述: 1. 负责相关网站系统的技术开发和维护工作; 2. 网站应用和功能模块的设计与程序开发、单元测试、维护文档的编定; 3. 负责接口的开发维护和调试 职位要求: 1. 两年以上的LINUX...

Betty_li
2012/05/14
371
4
基于 Node.js 的内容管理系统--DoraCMS

DoraCMS 使用的技术栈: 1、vue + vuex + vue-router 全家桶 2、webpack 2 3、nodejs 8.0 + express 4 4、mongodb 3+ 演示地址: 前端开发俱乐部 后台登录: https://www.html-js.cn/dr-admi...

doramart
2015/08/18
14.5K
4
北京 知名门户 PHP 8-15K

工作职责: 1、使用PHP语言开发高效能数据、应用服务 2、完成系统架构设计、数据库结构设计、业务逻辑抽象、组件封装等编码工作 3、在开发过程中发现存在的问题,制定团队开发规范 4、文档撰...

围观者Justin
2011/08/16
372
4
北京易橙天下科技有限公司招聘PHP中/高级工程师

北京易橙天下科技有限公司成立于2010年9月,是由中国网络电视台(CNTV)与盛大游戏共同投资成立的合资公司,致力于打造中国最大的多媒体互动娱乐平台。目前公司拥有2大业务: games.cntv.cn ...

杨争2018
2011/11/07
256
2

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 年迈渔夫遭黑帮袭抢

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享Elvis Presley的单曲《White Christmas》: 《White Christmas》- Elvis Presley 手机党少年们想听歌,请使劲...

小小编辑
今天
1K
16
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
12
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部