開源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(主從)同步。