开源Cms系统鱼目混杂,市场上各类的cms系统都以不同的方式存在着,当然,他们都有着自己的价值。但大的趋势,分为dedecms一类的小型引擎门户站开发,和phpcms一类大型综合站开发两类;今天,就这两个系统,进行分析一下:
文件目录篇:
DEDEcms | PHPcms | 备注 |
Images | statics
| 静态文件 |
Uploads | uploadfile
| 上传文件 |
a | html | 静态页面存放目录 |
|
|
|
data | phpcms | 系统功能 |
dede | ||
include | ||
plus | ||
special | ||
templates | ||
member | 会员模块 | |
Data/cache | caches | 缓存 |
优势对比:
1、dede控制器独立,应对轻量级程序,反应迅速;phpcms模块化明显,功能独立,便于大型程序的拓展,功能之间互不影响;
2、Dede中plus文件集合各类功能性插件,便于网站的简单扩展,不便于大型功能;phpcms集合模块开发,小型插件拓展也是一个模块;
3、phpcms后台功能简洁,dedecms比较繁琐;
4、Phpcms的数据控制能力比dedecms强一些。 从时间上来说,用dedecms生成100个html文件的时间,phpcms可以生成2000个。dedecms的搜索性能极差,搜索局限性大。而 phpcms可以做到自定义字段都是搜素条件,而且速度快,后台的数据控制灵活性Phpcms比dedecms强很多,我们在Phpcms后台可以有很多 方式在查找数据,自定义一页显示数据的行数。 dedecms不可能做到。
5、Seo方面:网站的seo优化没有dedecms设计的好,dedecms可以很简单的在后台控制url的生成方式,并且重命名,而Phpcms貌似很复杂(Phpcms自定义URL规则技巧),最重要的是官方不给一点详细的说明。
6、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的超高负荷又是拿什么实现的呢?
1、为每一个可能查询的条件添加索引;
2、页面不要出现select *,再多的字段也要一一列出来;
3、尽量不要使用字段null;
4、数据表字段越短越快,选择合适字符串的类型;
从网上调查来看,站长在选择一款CMS时,大概一般会考虑如下方面:
1) 程序是否安全稳定,会不会经常有BUG
2) 程序使用简不简单
3) 程序生成静态速度是否够快
4) 程序模板多不多,模板好不好做,标签好不好用
5) 程序负载能力强不强
6) 程序模块多不多,如有没有房产模块、有没有黄页模块、分类信息模块、问答模块等
7) 程序二次开发是否灵活
所以,初始化的项目,就要抓住精简来入手。所以,初步觉得精简的cms需要具备的条件:
1、架构稳定,功能简单,但程序流程必须清晰明了;
2、应对每一个数据库操作,传值都做严密检测,保证程序安全性;
3、结合json、jquery提升程序用户体验;
4、做好真静态,url路由等利于优化的功能;
5、文件、数据库命名参考phpcms,利于融合市场;
6、数据库优化方面避免基础错误的发生;
7、严整代码,类库做到自动加载,冗余代码一定删除;
建议版本分类:
第一版:连通网站前后台,可以做到后台登陆管理,前台显示,做好标签解析;
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(主从)同步。