开源Cms系统鱼目混杂,市场上各种的cms系统都以不一样的方式存在着,固然,他们都有着本身的价值。但大的趋势,分为dedecms一类的小型引擎门户站开发,和phpcms一类大型综合站开发两类;今天,就这两个系统,进行分析一下:php
文件目录篇:html
DEDEcmsnode |
PHPcmsjquery |
备注redis |
Imagesthinkphp |
statics数据库
|
静态文件json |
Uploads缓存 |
uploadfile安全
|
上传文件 |
a |
html |
静态页面存放目录 |
|
|
|
data |
phpcms |
系统功能 |
dede |
||
include |
||
plus |
||
special |
||
templates |
||
member |
会员模块 |
|
Data/cache |
caches |
缓存 |
优点对比:
一、dede控制器独立,应对轻量级程序,反应迅速;phpcms模块化明显,功能独立,便于大型程序的拓展,功能之间互不影响;
二、Dede中plus文件集合各种功能性插件,便于网站的简单扩展,不便于大型功能;phpcms集合模块开发,小型插件拓展也是一个模块;
三、phpcms后台功能简洁,dedecms比较繁琐;
四、Phpcms的数据控制能力比dedecms强一些。 从时间上来讲,用dedecms生成100个html文件的时间,phpcms能够生成2000个。dedecms的搜索性能极差,搜索局限性大。而 phpcms能够作到自定义字段都是搜素条件,并且速度快,后台的数据控制灵活性Phpcms比dedecms强不少,咱们在Phpcms后台能够有不少 方式在查找数据,自定义一页显示数据的行数。 dedecms不可能作到。
五、Seo方面:网站的seo优化没有dedecms设计的好,dedecms能够很简单的在后台控制url的生成方式,而且重命名,而Phpcms貌似很复杂(Phpcms自定义URL规则技巧),最重要的是官方不给一点详细的说明。
六、Dedecms调用标签多数与数据库字段不一致(如:litpic/picname、info/infos/description),phpcms就作的很好;
总得来讲:
dedecms属于横向发展,适用于功能多样但易于实现的项目;
Phpcms属于纵向研发类,提供了我没一个强大的框架,适用各种大型项目开发拓展;
数据库篇:
v9_admin 管理员表
v9_admin_panel 快捷面板
v9_admin_role 角色表
v9_admin_role_priv 管理员权限表
v9_block 碎片表
v9_block_history 碎片历史记录表
v9_block_priv 碎片权限表
v9_collection_content 采集内容表
v9_collection_history 采集历史
v9_collection_node 采集节点配置
v9_collection_program 采集导入规则表
v9_comment
v9_comment_check
v9_comment_data_1
v9_comment_setting
v9_comment_table
v9_content_check 内容审核表
Dede:
dede_addonarticle
dede_addonimages
dede_addoninfos
dede_addonshop
dede_addonsoft
dede_addonspec
dede_admin
dede_admintype
dede_advancedsearch
dede_arccache
dede_archives
dede_arcmulti
dede_arcrank
当下流行php开源程序:
CMS:
Phpcms :框架清晰明了,易于二次开发,要求php程序技术较高;
帝国cms :功能安全性齐全,稳定性高,功能定制需打动干戈;
dedecms :精小的臭皮匠,无安全性、无稳定性,但功能易于定制,适合企业站开发;
博客:wordpress
论坛:discuz、phpwind
商城:ecshop
团购:最土团购
微信:thinksns
在线调查数据负载能力:
Discuz>phpwind>wordpress>phpcms/帝国cms>dedecms
综合数据来看,phpcms数据分析明显比dedecms合理。但在市场之上的discuz的超高负荷又是拿什么实现的呢?
一、为每个可能查询的条件添加索引;
二、页面不要出现select *,再多的字段也要一一列出来;
三、尽可能不要使用字段null;
四、数据表字段越短越快,选择合适字符串的类型;
从网上调查来看,站长在选择一款CMS时,大概通常会考虑以下方面:
1) 程序是否安全稳定,会不会常常有BUG
2) 程序使用简不简单
3) 程序生成静态速度是否够快
4) 程序模板多很少,模板好很差作,标签好很差用
5) 程序负载能力强不强
6) 程序模块多很少,若有没有房产模块、有没有黄页模块、分类信息模块、问答模块等
7) 程序二次开发是否灵活
因此,初始化的项目,就要抓住精简来入手。因此,初步以为精简的cms须要具有的条件:
一、架构稳定,功能简单,但程序流程必须清晰明了;
二、应对每个数据库操做,传值都作严密检测,保证程序安全性;
三、结合json、jquery提高程序用户体验;
四、作好真静态,url路由等利于优化的功能;
五、文件、数据库命名参考phpcms,利于融合市场;
六、数据库优化方面避免基础错误的发生;
七、严整代码,类库作到自动加载,冗余代码必定删除;
建议版本分类:
初版:连通网站先后台,能够作到后台登录管理,前台显示,作好标签解析;
a、作好网站的内容管理,后台实现增删改查功能;
b、作好网站的模板标签解析;
c、作标签解析,必定要作真静态;作真静态,内容较多时怎么处理?(如:新闻、产品):考虑作文件生存时间;
第二版:作好网站栏目管理、后台管理员权限管理;
a、使用thinkphp内置的RBAC权限管理,理解其原理;
b、模型管理与功能实现;
第三版:网站缓存技术拓展,网站路由技术、真静态技术的加入;
a、文件缓存、Xcache、Memcache/redis;
b、路由技术搭配缓存技术能够隐藏网站路径,提升网站用户体验性和易开发性;
Ep:?m=admin&c=index&pc_hash=77TG17 ==> /admin
c、真静态不只能够提高搜索引擎的友好度,还能够提示用户访问速度;致命缺陷是遇到大数据,便失去了价值;
第四版:网站插件管理添加,会员模块添加;
a、会员模块很常见,仍是要考虑到里面的;
b、轻量级框架必须具有的就是可扩展性,因此插件功能不可少;
第五版:网站模板管理
a、多模板、多主体选择;
附1:
redis是一个key-value存储系统。和Memcached相似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操做,并且这些操做都是原子性的。在此基础上,redis支持各类不一样方式的排序。与memcached同样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操做写入追加的记录文件,而且在此基础上实现了master-slave(主从)同步。