欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHPCMS和帝國(guó)CMS二次開(kāi)發(fā)優(yōu)缺點(diǎn)分析及站長(zhǎng)如何適合自己的CMS 推薦

  發(fā)布時(shí)間:2011-09-09 11:50:21   作者:佚名   我要評(píng)論
昨天應(yīng)朋友之約,寫了一篇CMS分析的文章,試圖寫得專業(yè)點(diǎn),不過(guò)偶的專業(yè)度還是不夠,湊合了一篇,大家有分撒分,不要批我!

作者:落葉(lyrs.net) (t.qq.com/guohui )

經(jīng)常見(jiàn)站長(zhǎng)論壇有人提到選哪個(gè)CMS好,最近也又有朋友在51LA站長(zhǎng)群里問(wèn)到PHPCMS和帝國(guó)CMS比較選哪個(gè)好的問(wèn)題,所以落葉今天從PHPCMS及帝國(guó)CMS對(duì)比的角度來(lái)談?wù)務(wù)鹃L(zhǎng)應(yīng)該如何選擇適合自己的CMS。

落葉自詡對(duì)現(xiàn)在主流CMS及建站程序還是有足夠多了解的,從接觸混互聯(lián)網(wǎng)開(kāi)始使用過(guò)的并且作過(guò)小量二次開(kāi)發(fā)的CMS和建站程序有早期的動(dòng)易siteweaver、DEDECMS、PHPCMS2008、帝國(guó)CMS、科訊CMS、無(wú)憂CMS、風(fēng)訊CMS 、DISCUZ、UCHOME、HDWIKI、新云CMS等(以前負(fù)責(zé)的一個(gè)網(wǎng)站是Siteweaver+2*PHPCMS+HDWIKI+DISCUZ7.0+UCHOME搭建的行業(yè)門戶,二次開(kāi)發(fā)比較多,所以相對(duì)比較了解,至于其它CMS因?yàn)槌S泻芏嗯笥严蛭覇?wèn)到各種各樣的CMS使用問(wèn)題,所以我也常做一些測(cè)試和一些小量二次開(kāi)發(fā))。

從落葉的經(jīng)驗(yàn)來(lái)看,站長(zhǎng)在選擇一款CMS時(shí),大概一般會(huì)考慮如下方面:

1) 程序是否安全穩(wěn)定,會(huì)不會(huì)經(jīng)常有BUG

2) 程序使用簡(jiǎn)不簡(jiǎn)單

3) 程序生成靜態(tài)速度是否夠快

4) 程序模板多不多,模板好不好做,標(biāo)簽好不好用

5) 程序負(fù)載能力強(qiáng)不強(qiáng)

6) 程序模塊多不多,如有沒(méi)有房產(chǎn)模塊、有沒(méi)有黃頁(yè)模塊、分類信息模塊、問(wèn)答模塊等

7) 程序二次開(kāi)發(fā)是否靈活

擅長(zhǎng)或喜歡二次開(kāi)發(fā)的基本首先會(huì)考慮二次開(kāi)發(fā)的靈活性,及模塊方面有沒(méi)有適合自己的;而普通用戶則更多的考慮程序易不易于使用,模板標(biāo)簽簡(jiǎn)不簡(jiǎn)單,所以CMS選擇的焦點(diǎn)基本集中的二次開(kāi)發(fā)的靈活性和模板標(biāo)簽的易用性兩方面了。

落葉接觸到的這些CMS或建站程序,也基本上是大家現(xiàn)在用的比較多的,其中PHPCMS是落葉最為熟悉的,二次開(kāi)發(fā)最多的,而帝國(guó)CMS也只是最近因?yàn)橛信笥岩規(guī)兔κ挂恍┑蹏?guó)CMS的插件和進(jìn)行一些細(xì)節(jié)修改,所以才用到,對(duì)比發(fā)現(xiàn)PHPCMS和帝國(guó)CMS在很多設(shè)計(jì)思路上比較相近,但又似乎完全是兩種不同的風(fēng)格,落葉覺(jué)得比較典型,所以以這兩款CMS來(lái)作對(duì)比分析。

1.從二次開(kāi)發(fā)的角度來(lái)講:

在我看來(lái),PHPCMS(2008版)更多算作是一個(gè)開(kāi)發(fā)框架,離一個(gè)成熟的產(chǎn)品太遠(yuǎn),先后使用PHPCMS二次開(kāi)發(fā)搭建過(guò)五六個(gè)平臺(tái),從剛發(fā)布的PHPCMS2008版,及現(xiàn)在的PHPCMS2008 sp4版(pcv9不作評(píng)價(jià),開(kāi)發(fā)初期做過(guò)較多的測(cè)試、反饋過(guò)一些建議,但正式版我并沒(méi)用過(guò)),每一次我都會(huì)遇到同樣的問(wèn)題,總是邊罵低級(jí)錯(cuò)誤邊作修改,到現(xiàn)在官方停止開(kāi)發(fā)了,很多剛發(fā)布時(shí)的BUG都還存在。雖然如此,PHPCMS仍然是首選的CMS,為啥,就是他很靈活,想怎么改就可以怎么改,想到即可以做到。在我看來(lái)PHPCMS代表了一種極端,即如果首要考慮二次開(kāi)發(fā),那PHPCMS是不錯(cuò)的選擇。

PHPCMS中想實(shí)現(xiàn)任何數(shù)據(jù)的讀取只要寫一條SQL,然后面模板中GET標(biāo)簽調(diào)用下就行了,如果覺(jué)得模板中處理的不夠,那么只需要在對(duì)應(yīng)同名的PHP文件中作些處理就行了。甚至,只需要在頭部引用common.php文件,調(diào)用模板引用函數(shù)引用模板,然后建一個(gè)同名的HTML文件作為模板,即可在PHPCMS的基礎(chǔ)上實(shí)現(xiàn)很多想要的功能。

帝國(guó)CMS,雖然官方的宣傳語(yǔ)也是想到即可做到,但從我在對(duì)帝國(guó)CMS作一些簡(jiǎn)單功能需求的修改及插件開(kāi)發(fā)來(lái)看,帝國(guó)CMS離想到即可做到太遠(yuǎn),限制在帝國(guó)的開(kāi)發(fā)思路之下,有些功能即使是很小的功能,也需要對(duì)帝國(guó)的核心程序大動(dòng)干戈。就拿一個(gè)簡(jiǎn)單的需求“我想獲取內(nèi)容頁(yè)分頁(yè)的頁(yè)碼,以根據(jù)不同的分頁(yè)來(lái)實(shí)現(xiàn)一些不同的顯示”,這個(gè)需求的后面不談,單就獲取內(nèi)容頁(yè)分頁(yè)的頁(yè)碼來(lái)講,幾乎是不可能,為啥呢?第一,他沒(méi)有這個(gè)標(biāo)簽,也沒(méi)有提供變量,論壇里很多人提到這一需求,始終無(wú)法解決;第二,帝國(guó)的模板標(biāo)簽解析方式是老的動(dòng)易的思維即程序先處理好每一個(gè)標(biāo)簽的結(jié)果,連HTML都帶上了,然后把存儲(chǔ)在數(shù)據(jù)庫(kù)中的模板讀出來(lái),把里面的標(biāo)簽一個(gè)一個(gè)替換,基本上內(nèi)容頁(yè)的每一個(gè)標(biāo)簽都是經(jīng)過(guò)了一個(gè)專門的處理過(guò)程來(lái)實(shí)現(xiàn),耦合度太高,大部分代碼都沒(méi)法通用。(現(xiàn)在主流模板引擎都是先把標(biāo)簽解析編譯好,然后緩存,標(biāo)簽已經(jīng)變成可執(zhí)行的PHP程序,然后程序處理好數(shù)據(jù)后直接調(diào)用模板緩存,執(zhí)行。標(biāo)簽都是通過(guò)統(tǒng)一的方式來(lái)處理的,通用性較強(qiáng)。)而也正因?yàn)槊總€(gè)標(biāo)簽都封裝的很好,做的很完整了,所以使用起來(lái)又非常簡(jiǎn)單穩(wěn)定,只要按提示放上去,就不會(huì)有問(wèn)題,所以帝國(guó)在安全性、穩(wěn)定性、易用性又非常不錯(cuò)。

舉例來(lái)說(shuō)吧,有一個(gè)用帝國(guó)CMS做精品故事網(wǎng)的朋友(http://www.pmume.com  ),想實(shí)現(xiàn)如下圖所示內(nèi)容頁(yè)分頁(yè)標(biāo)題導(dǎo)航。


我看了下,帝國(guó)論壇也有非常多的朋友有這個(gè)需求,但基本沒(méi)有看到有很好的解決。然后我看了下帝國(guó)的標(biāo)簽的代碼,他內(nèi)置其實(shí)有一個(gè)內(nèi)容頁(yè)分頁(yè)下拉導(dǎo)航標(biāo)簽。本來(lái)一般的程序的思維是實(shí)現(xiàn)數(shù)據(jù)和模板的分離,把數(shù)據(jù)處理好,其它的表現(xiàn)形式(是下拉列表,還是普通文字列表)這個(gè)交由模板來(lái)處理,而帝國(guó)中確全是由核心函數(shù)來(lái)處理的,在functions.php和t_functions.php中文件中單獨(dú)寫函數(shù)來(lái)處理這個(gè)標(biāo)簽,并且把HTML都封的很好了,呈現(xiàn)給大家。我為了實(shí)現(xiàn)內(nèi)容頁(yè)分頁(yè)標(biāo)題導(dǎo)航列表,仿照他的標(biāo)簽的實(shí)現(xiàn)方式,修改這兩個(gè)核心文件才能實(shí)現(xiàn)。而事實(shí)上,其它CMS中,只要先PHP文件中分析出文章的分頁(yè)標(biāo)題,記錄成數(shù)組變量,然后在模板中用循環(huán)標(biāo)簽循環(huán)一下就OK了,想怎么展現(xiàn)就怎么展現(xiàn)。(詳見(jiàn):http://bbs.chinaz.com/CMS/thread-2020475-1-1.html)。

帝國(guó)CMS和PHPCMS同樣都有自定義模型的功能,在字段自定義方面,帝國(guó)做的更人性化些,更適合新手朋友使用,而PHPCMS功能上是沒(méi)問(wèn)題的,有些設(shè)計(jì)上合理性差些,如定義字段只能存在副表(PCV9有了改進(jìn))。帝國(guó)CMS中每個(gè)模型都是單獨(dú)的數(shù)據(jù)主表+副表,不同模型間,數(shù)據(jù)ID無(wú)關(guān)聯(lián),這樣的問(wèn)題是不同的模型中有相同的ID的文章,涉及到全站數(shù)據(jù)操作的時(shí)候很糾結(jié),非得一個(gè)一個(gè)判斷模型,落葉今天在設(shè)計(jì)一個(gè)帝國(guó)CMS插件時(shí),深深的體會(huì)到了這樣的設(shè)計(jì)的杯具。PHPCMS所有模型共用一個(gè)主表,副表各自使用,即所有文章不管什么模型的標(biāo)題、摘要等信息都存放在統(tǒng)一的表中,這樣全站進(jìn)行數(shù)據(jù)調(diào)用都很方便,這樣的缺點(diǎn)也很明顯,自定義字段只能放在副表中,如果自定義的字段想作為數(shù)據(jù)調(diào)用的條件或者搜索條件,那就很杯具了,非得兩表聯(lián)合查詢,和把整篇文章的數(shù)據(jù)讀出來(lái),基本沒(méi)啥區(qū)別。

簡(jiǎn)言之,以這樣不太高的PHP水平,可以使用PHPCMS毫不費(fèi)力的設(shè)計(jì)出各種模型,包括房產(chǎn)模型、問(wèn)答模型、汽車模型等,只要了解模型的字段有哪些,流程怎樣,后臺(tái)建下模型,然后把list.php和show.php復(fù)制一份,作些個(gè)性修改,然后上傳下HTML文件模板即可,要偽靜態(tài)就偽靜態(tài),要生成靜態(tài)就生成靜態(tài)。而如果以帝國(guó)作二次開(kāi)發(fā),那么也可以很方便在后臺(tái)自定義模型建表,但是數(shù)據(jù)流程處理方面靈活性就缺很多了,在使用他的數(shù)據(jù)操作類,操作數(shù)據(jù)后,要熟悉他的模板處理方面,讀取模板,然后單純的寫函數(shù)來(lái)替換變量標(biāo)簽,如果要生成靜態(tài),他原來(lái)的內(nèi)容頁(yè)靜態(tài)生成函數(shù)還沒(méi)法通用,需要自己?jiǎn)渭儊?lái)寫一個(gè)靜態(tài)生成類。一句話,很痛苦!還不如自己全寫PHP了事。

下面是落葉此前在微博中的一些評(píng)述:4月10日 10:52

落葉: 今天開(kāi)始仔細(xì)研究下#帝國(guó)CMS#,一直在帝國(guó)備份王,但從沒(méi)細(xì)致使用過(guò)帝國(guó)CMS。帝國(guó)CMS初步印象:1.帝國(guó)CMS似乎延續(xù)幾年前的流行的ASP類CMS的風(fēng)格,類似動(dòng)易,尤其是模板綁定及標(biāo)簽這塊;2.后臺(tái)模型自定義方面和PHPCMS比較象,但比PHPCMS做的要細(xì)致。

4月10日 10:58

落葉: 其實(shí)早前也有安裝過(guò)#帝國(guó)CMS#進(jìn)行測(cè)試,而后來(lái)始終沒(méi)有用來(lái)正式建站:1.后臺(tái)太像老舊的ASP類CMS,而我對(duì)老一套的ASP類CMS的處理風(fēng)格很反感;2.模板記錄在數(shù)據(jù)庫(kù)里:做PHP的更喜歡模板直接以HTML文件的形式存放,這樣修改測(cè)試都會(huì)更方便,而存儲(chǔ)在數(shù)據(jù)庫(kù)中每次修改、保存,都有心理暗示-“可以失敗”

4月10日 11:02

落葉: 大多ASP類CMS中模板都是存儲(chǔ)在數(shù)據(jù)庫(kù)中,在修改模板提交時(shí),經(jīng)常會(huì)有部分代碼因安全限制、服務(wù)器配置、基至IDC敏感詞過(guò)濾而提交失敗,所以這類CMS在個(gè)性修改方面總是不夠方便。ASP類CMS中的特例是科訊CMS,他采用了PHP的思路,綁定HTML文件存儲(chǔ)的模板,而PHP類CMS中#帝國(guó)CMS#是特例,用數(shù)據(jù)庫(kù)記錄模板

4月10日 11:04

落葉: #帝國(guó)CMS#按個(gè)人經(jīng)驗(yàn),以HTML文本記錄模板,然后后臺(tái)綁定的好處在于:1.不擔(dān)心提交時(shí)模板損壞或在線修改無(wú)法撤消;2.要替換模板,直接FTP下載原模板,改名后上傳,后臺(tái)綁定,這點(diǎn)#PHPCMS#中做的似乎是最靈活的??梢匀我鉃槿魏螜谀咳魏雾?yè)面定義個(gè)性化的模板,而操作只是下載-》改名-》修改-》上傳-》綁定

4月10日 11:11

落葉: #帝國(guó)CMS#、DEDECMS更像成品,#PHPCMS#更像框架,單論標(biāo)簽調(diào)用:帝國(guó)和DEDECMS內(nèi)置標(biāo)簽很多都局限在特定模塊或欄目,封裝完整,優(yōu)點(diǎn)是用起來(lái)省事,缺點(diǎn)是不夠靈活;PHPCMS更適合程序員思路,一條SQL搞定,直接模板中用GET標(biāo)簽SQL查詢,個(gè)性化開(kāi)發(fā)很省事。試圖從帝國(guó)萬(wàn)能標(biāo)簽中找尋GET標(biāo)簽影子,無(wú)果

2.程序穩(wěn)定性模板標(biāo)簽易用性角度講:

PHPCMS中的標(biāo)簽都是以程序員的思維來(lái)實(shí)現(xiàn),首頁(yè)、列表頁(yè)的標(biāo)簽TAG標(biāo)簽和GET標(biāo)簽實(shí)際都是生成SQL語(yǔ)句,解析成函數(shù)執(zhí)行;內(nèi)容頁(yè)的標(biāo)簽實(shí)現(xiàn)是變量,即PHP控制文件中把數(shù)據(jù)庫(kù)中的數(shù)據(jù)讀取出來(lái),根據(jù)字段類型處理成干干凈凈的數(shù)據(jù),放在變量中,然后PHP內(nèi)容頁(yè)模板中直接使用這些變量,邏輯判斷也好,進(jìn)一步函數(shù)處理也好,想怎么處理就怎么處理,更符合程序員的思維。但普通用戶用起來(lái)可能比較揪心,改個(gè)模板還要懂PHP邏輯思維和SQL語(yǔ)句,從PHPCMS部分模塊的明顯的BUG殘留來(lái)看,其實(shí)可以判斷那些模塊基本很少有人使用。(當(dāng)然PCV9應(yīng)該作了很大改進(jìn),這里不討論。)帝國(guó)CMS中的標(biāo)簽才算是傳統(tǒng)意義上最正宗的標(biāo)簽,他和動(dòng)易(ASP類的CMS)的標(biāo)簽處理思維極像,這個(gè)標(biāo)簽是代表什么的,然后程序處理好后,直接整塊替換。使用起來(lái)非常方便,并且帝國(guó)在細(xì)節(jié)上做的也非常優(yōu)秀,在模板的下方都仔仔細(xì)細(xì)標(biāo)示出來(lái)所有可以使用的標(biāo)簽,站長(zhǎng)朋友們只需要按提示放上標(biāo)簽就行了,省事,安心。缺點(diǎn)這樣標(biāo)簽只算標(biāo)簽,不是干凈的數(shù)據(jù),處理起來(lái)缺乏個(gè)性化,雖然帝國(guó)CMS模板也支持PHP,便是由于他的模板生成方式?jīng)]是先解析變量成PHP,再處理,而是一邊處理好標(biāo)簽的數(shù)據(jù),生成時(shí)替換,所以限制也很明顯。上面有提到朋友的精品故事網(wǎng)是使用帝國(guó)CMS做的,在文中提到實(shí)際是有意推薦,因?yàn)檫@個(gè)朋友在不懂任何程序的情況下,使用帝國(guó)CMS把網(wǎng)站做得非常優(yōu)秀,這也正說(shuō)明帝國(guó)在細(xì)節(jié)上做的非常優(yōu)秀。上面廢話了一大堆,其實(shí)基本意思也就兩點(diǎn):不需要過(guò)多二次開(kāi)發(fā)的朋友,使用帝國(guó)CMS等會(huì)相對(duì)比較不錯(cuò),而對(duì)二次開(kāi)發(fā)要求比較多,并且對(duì)PHP比較熟的朋友,完全可以把PHPCMS當(dāng)作一個(gè)框架來(lái)使用,BUG不是問(wèn)題,這樣改的才爽,最怕是的像帝國(guó)那樣寫的很死了沒(méi)法改。當(dāng)然,文章中主要提取帝國(guó)CMS和PHPCMS,似乎把使用DEDECMS的同學(xué)給忽視了,實(shí)現(xiàn)來(lái)講,我遇到的站長(zhǎng)朋友使用DEDECMS的還是居多數(shù),這款CMS穩(wěn)定性和標(biāo)簽的易用性是介于帝國(guó)CMS和PHPCMS之間的,落葉這里只是把兩個(gè)極端作了下分析,希望能給朋友們有些提示。

相關(guān)文章

最新評(píng)論