“中国要复兴、富强,必须在开源软件领域起到主导作用,为了国家安全和人类发展,责无旁贷,我们须为此而奋斗”——By:云客
这个是很久前写的东西了,发出来分享下 里面的一些观点及内容可能不胜准确 权当参考
帝国CMS和PHPCMS对比随谈
目前国内最流行的CMS为织梦、phpcms、帝国,织梦虽然用户量大但多是php初级用户,且经常出现问题这里就直接pass了,就剩下PHPCMS(简称PC)和帝国最为强劲,一直是帝国深度用户,在等待帝国7.0版这段时间研究了下PC,起初被PC深深吸引,一度认为PC会超过帝国,但随着对PC研究的深入及在PC论坛混了一段时间后重心又放回了帝国,既然如此就把PC的一些优点整理出来希望帝国吸收,越来越强,同时把PC犯的错误写出来供帝国引以为戒,这里就当讲一个故事,加了自己的一些看法,不免优点杂乱,但看后应该对这两个CMS有个大概的了解。
由于帝国7.0版迟迟没有出来所以开始研究PC,现在帝国7.0正式版已经发布,带来了很多新的功能,PC在前几天也刚刚更新到了V9.3.2 Release 20130411版,本文可能会更多提到PC的优点,主要是想让帝国吸收这些优点,这并不表示帝国不好,相反此时此刻如果我要做一个比较大型的网站,就目前而言是偏向于采用帝国的,下面慢慢道来。
开始了解PC的时候,我并不是直接去看功能有多么强大,有那么多人使用说明一定有可取之处,所以我更多的是去看这个开发团队怎么样,因为当你雄心勃勃去做一个网站的时候,重点是以后这个开发团队能否和你一起成长,出了BUG能否及时修复,毕竟cms是比较复杂庞大的,非开发人员去弄BUG比较困难,言归正传,PC现在是被盛大网络发展公司收购(就是陈天桥那个盛大,还是有些实力的公司),当时想着好歹是大公司的产品应该有些保障,但这个想法后来产生了变化,源于PC官方对用户反馈的冷漠,在pc论坛反馈了问题很长时间不见回复,也不解决,更夸张的是官方知道的一些问题在更新的时候仍然不解决,比如弹窗插件有问题导致弹窗不正常,官方发布了替换的dialog.js文件,但V9.3.2 Release 20130411版出来的时候这个文件居然还是以前有问题的那个文件,所以现在我在想一个开发团队开发出一个产品后,这个产品会是他的孩子,会认真对待这个孩子,但有天把孩子给卖了,这个当爹妈的可能就不会那么爱这个孩子了,反正钱已经到手,孩子病了也是人家的事情,现在我不去说这个孩子的毛病,来说说这个孩子的优点:
第一:使用面向对象编程OOP,这个先天的优势带来很多方便,用户做二次开发的时候只需要继承就可以了,而且模块清晰,这样带来的直接好处是用户不用修改官方文件,官方发布新版本的时候直接覆盖原文件就可以了,一个大网站一定会有针对性的一些二次开发,而面向过程编程难免会修改官方文件,导致升级十分头疼,这点帝国应该吸收,考虑用oop来重写程序,毕竟大型项目还是OOP的好
第二:尽量使用优秀的第三方插件,以提高用户体验,这点PC确实做的不错,界面和体验都很好,PC使用了Jquery(这个就不用说了,十分牛逼的js库)、artDialog(是一个基于javascript编写的弹窗效果框架组件,精致的界面与易用的接口是它的优势。)、jQuery formValidator(优秀的表单验证框架,帝国现在要用户自己编写JS来校验提交表单,这个东西只要你写正则表达式就可以了,相当不错)、Dynarch Calendar(Dynarch.com 开发的一个日历控件,她功能十分健全,内置多种皮肤,支持多种语言,同时提供了一个配置程序,使用非常方便)、CKEditor(这个就是帝国论坛天天闹着要的编辑器啊,CKEditor是新一代的FCKeditor,是一个重新开发的版本。CKEditor是全球最优秀的网页在线文字编辑器之一,因其惊人的性能与可扩展性而广泛的被运用于各大网站。)
这些第三方插件为PC添色不少,强烈推荐帝国使用,帝国现在界面太弱了,和它的强大完全不匹配。
第三:PC敢于用dz来做支持论坛,现在帝国的EBB真的不怎么好用,经常发布不了,有好东西就用呗,没什么丢人的,比较帝国是搞cms的不是做论坛的,要是做论坛王孟不一定比戴志康差
大的方面第一印象就是上面这些,下面就讲些具体的功能及PC和帝国的对比:
1:PC按模块来设计,每个模块都是一个单独的文件夹,调用这些模块的时候系统共用的类及函数都会在之前自动加载,做二次开发的时候结构很清楚,有哪些函数及类可用一目了然,而帝国对于初级用户来说比较散。
2:建立系统模型的时候,PC V9会初始很多不必要的字段,这个比较烦,帝国就简洁多了
3:PC系统模型增加字段的时候可以为这个字段指定正则表达式用来校验提交表单,比较傻瓜化,很好用,省去自己写JS,还可以输入表单框旁边的提示文字及校验未通过的提示文字,可以输入CSS的样式名,js事件,这些都做的很傻瓜化,使用非常方便
4:字段类型方面,PC有联动菜单、地图字段(这个类型会调用百度地图) 这两个类型帝国现在还没有,pc里面的万能字段其实就是帝国的多值字段,不过没帝国做的好,帝国有关联字段类型,可以关联到其他表的字段值,这个pc是没有的
5:PC目前居然不支持游客投稿,但后台有允许游客投稿的权限设置,十分费解,而且也没有设置是否启用投稿验证码的选项
6:PC在注册时候默认AJAX验证数据,并且有个注册协议,而这些常用的操作帝国需要用户自己去开发
7:PC的权限设置非常详细,详细到跟着菜单走,在菜单前打钩即具备,建立数据模型的时候可以针对字段设置哪些前台及后台的用户可以操作该字段
8:关于会员模块:PC针对不同会员组单独建立会员表,有一个主表里面存放用户ID,用户名,密码,邮件地址,其他的字段存入各自的会员表里面,同样可以设置会员某字段在后台允许哪些角色更改,哪些字段用户不能更改
9:关于会员组:会员组仅是会员的不同人群,并不一定存在某组比另外一组的级别都要高,比如有些操作允许低级别的会员组操作反而不允许高级别会员组操作,这方面帝国好像在权限上面把会员分级别了,高级别可以做低级别的所有操作,而PC更加明白这个概念,PC还引入认证会员的概念,不同会员组的会员都可能是认证会员,这个帝国实现比较麻烦
10:模板:帝国是存数据库,pc存在文件里面,帝国比pc方便很多,虽然pc也可以后台直接编写模板但何必存文件呢,在帝国里模板是封面模板、列表模板、内容模板 pc里面对应的文件命名为:category_自定义名.html、list_自定义名.html、show_自定义名.html,pc采用模板引擎,帝国是标签替换。
11:标签:PC的标签是{pc 参数}内容{/pc}或者{$var},帝国是[标签名]参数[/标签名]或[--名字--]。模板里面均支持php程序代码,看个人习惯,很难说谁好谁不好
12:安全性,这个毫无疑问PC远远落后于帝国,在PC论坛及QQ群里面经常看到网址被挂马求助的信息,而帝国基本没有,有些人可能为PC鸣不平,说是用户自己不会操作,但注意这个现象不是个例,怎么可以把责任推给用户呢,此方面PC有个密码卡功能号称提供银行级安全,帝国的安全措施就不用说了,比如文件验证、证书、认证码、时段登陆、时段投稿等等可谓铜墙铁壁,
13、稳定性:PC现阶段仍然输给帝国,帝国的程序一向比较稳定,就像官方说的最安全最稳定,确实如此,而pc小问题多如牛毛,官方也不怎么重视,反馈后很久不见回复,论坛也难找到解决办法,让很多技术实力不是很强的站长实在头疼,这里列出一些我发现的问题,如果PC看到本文希望改进:投稿时缩略图截图后点击确定不被保存、用户注册表单正则验证错误、弹窗经常出问题、游客不能投稿、表单向导设置不允许用户组提交数据但仍然可以提交等等
14:入口程序:PC动态页面采用统一的入口地址:http://域名/index.php?m=模块名&c=控制器类文件名&a=类方法&catid=6额外参数,前后台均使用这样的模式,入口文件根据提交的参数找到模块文件夹初始化类,执行该类的方法,可以生成静态页面。帝国没有统一固定的入口,后台管理地址可以随意改变,在安全上面好一些,此外帝国7.0还支持动静态结合,比如栏目页前x页用静态 后面用动态
15:PC有个鸡肋的功能:表单向导,这个东西可以建立一个表让用户提交数据,但很鸡肋,连验证码都没有,需要自己加,这里说一个问题PC居然没有留言板功能,可能官方寄希望用户用这个表单向导来做吧,但用表单向导做留言板很麻烦,回复、审核、搜索都是问题,而帝国7.0的留言板目前是非常成熟了
16:模块:关于模块PC很值得称道,这个帝国就要虚心学习了,PC官方开发了很多的模块,很有用:比如短信模块可以向用户手机发短信,做验证什么的很有用,官方提供了短信费充值接口;心情模块:可以让用户看信息时点击表情发表心情,而帝国就只有个顶踩;友情链接:其他站长可以提交友情链接申请,帝国友情链接比较简单;问答模块:类似百度知道;黄页模块;由于PC是oop所以开发模块是比较方便的。这些东西真的可以有,不过帝国有商城系统默认集成,7.0版还做了大幅加强,PC可惜没有这个模块
17:数据库操作:这个还是帝国比较强,PC就一个数据库备份而且很简单,帝国有的就非常详细了,官方的帝国备份王可以对任何数据库备份恢复等等很是好用且稳定,在ECMS内部也集成了备份王功能,此外在后台可以直接输入SQL语句执行,还可以进行字段替换,包括使用正在表达式,操作数据库帝国可以说远胜PC
18:前台数据提交屏蔽:PC扩展里面有个敏感词管理,输入敏感词后可以设置替换为其他词也可以选择直接删除,帝国更细一些可以针对表字段来设置敏感词、包含敏感词禁止提交,7.0版还有双敏感词屏蔽,就是必须同时包含才屏蔽,屏蔽时提示包含非法词禁止提交,帝国还有个防火墙屏蔽字符,属于防火墙屏蔽的内容前台提交后直接空白
19:采集系统:帝国要详细一些,也比较简单,还有采集规则导入导出,而PC没有帝国详细,新手也比较难入门
20:系统升级:这块PC占优,PC升级可以不影响二次开发(前提是用户二次开发采用继承方式不修改系统文件),同时在PC后台还有在线升级功能,有新版时登陆后台会有弹窗提示,可以一键在线升级,
21:木马扫描:PC后台有木马扫描功能,可检测官方发布的系统文件的数字指纹(MD5),如果文件被修改,能及时发现,帝国没有此功能
22:负载能力:pc支持站群功能,可以把网站发布到多个服务器,实现负载均衡,也支持多数据库,帝国支持多数据库但要是商业版才行,
23:授权价格:pc v9基本授权要5600元,帝国7.0版4200元
24:界面:界面一直是帝国的弱项,这块PC做的很好,安装程序比较华丽,前后台由于用了大量第三方JS库,感觉很好
25:外部登录接口:PC有个PHPSSO,功能类似DZ的uc,帝国现在支持第三方账号登录,比如QQ等
还有很多的功能可以对比,总的来讲:
PC系统结构比较好,采用OOP,模块清晰,适合具备很强二次开发能力的童鞋,在充分了解系统程序后能做出不错的网站,特别是大型网站,缺点:小问题多、官方回复极慢,安全和稳定问题还待加强
帝国:安全和稳定做的很好,很多功能已经发展的很细致实用,面向过程编程,看代码比较易懂,如果编程能力很强也能做出很出色的网站,缺点:二次开发可能会修改很多官方文件,导致升级很麻烦
很难说PC和帝国以后谁发展的更好,拭目以待吧
本文作者:yunke 【云游天下,做客四方】 QQ:1012574684 帝国CMS、PHPCM深度开发可与我联系
交流互动