很多人學了許久的PHP,但對于框架和CMS的認識比較模糊。
這個其實很重要,應該全面而清晰的認識。本人結(jié)合自己多年的開發(fā)項目經(jīng)驗,斗膽總結(jié)一些,供后來學習者參考:
1 . 各自代表
框架代表:ThinkPHP(簡稱TP,以及它的最新版TP5),Laravel,YII,CI,......
CMS:Content Management System:內(nèi)容管理系統(tǒng);代表有:PHPCMS,dedecms,phpMyWind,帝國CMS,Ecshop,ECMall,Discuz,PHPWind
2 . 知識難度
框架需要的知識含金量比較高,對面向?qū)ο缶幊趟枷胍钊肜斫?,也要深刻?span>MVC原理,單入口原理,標簽解析引擎原理,方可以靈活使用框架去開發(fā);
所以它是適應PHP基礎比較全面的人;
而CMS不需要那么高深的知識,你稍微懂PHP一些語法,基礎東西,就可以依葫蘆畫瓢的使用CMS開發(fā)出一個簡單的項目,而且速度還比較快(但是維護起來會頭痛)。
CMS對PHP入門級的人是最愛。
3 . 應用范疇
CMS的應用范圍有局限,要選對,否則后患無窮。如:某類CMS只適合開發(fā)一類項目,選錯了可能要重新開發(fā)。
比如PHPCMS適合開發(fā)文章類型的管理系統(tǒng),Ecshop適合開發(fā)商城類型的項目,Discuz適合開發(fā)論壇類型的項目;
但是你如果要用Ecshop來開發(fā)論壇,就需要改的地方太多了,那就會走很多彎路....
而框架,因為屬于更底層的東西,所以它可以用來開發(fā)任何類型的項目。
另外,框架還可以開發(fā)CMS出來,但反過來,CMS就不能用來開發(fā)框架(會造成性能太低)。
4 . 開發(fā)特點
在框架中,你可能看不到一個具體的控制器子類文件,所以基于框架的開發(fā),首先要你自己來寫控制器文件,還要安排在什么位置寫,
這些都有框架自己的規(guī)矩,雖然也可以靈活的修改文件夾的位置,但你要麻煩的去尋找為什么。
而CMS等開源系統(tǒng),這些文件都是幫你寫好了的,位置也會幫你安排好,你在那些現(xiàn)成的文件上修修改改基本上就可以了。你會少很多事情。
5 . 靈活對比
用框架去開發(fā),你可以隨意修改你的項目模塊架構(gòu),可以隨意添加你想要的功能,如:你想在文章系統(tǒng)中添加個旅游模塊也可以;
實例:“PHP葵花寶典”項目(www.phpkhbd.com)就是用框架開發(fā)出來的,可以方便的添加任何想要的功能。
但CMS你要想做到這種穿插功能交集就比較麻煩了。
6 . 速度對比
用框架去開發(fā),開發(fā)的時候速度慢,但后續(xù)修改靈活,同時速度會很快,遇到問題可以馬上知道處在哪里了,可謂是“一步到位、一針見血”。
用CMS去開發(fā):開發(fā)的時候速度快,但后續(xù)修改特別是添加功能模塊的時候,就不夠靈活,會造成速度很慢,甚至不大可能實現(xiàn)。
打個比方:你用框架開發(fā)的項目,開發(fā)的時候可能需要2個月,但你后續(xù)升級項目,添加個什么功能可能只要1個星期。
而你用CMS去開發(fā),開發(fā)項目上線可能只要3個星期,但是你升級功能、添加新功能模塊、可能也要3個星期甚至更多,還有可能實現(xiàn)不了,
或者強加進去會造成該模塊性能甚至整個系統(tǒng)的性能大大降低。而且每次升級都是這樣。
所以,該如何選擇,你應該清楚了吧:如果想做一個長久更新的項目,那使用框架去開發(fā)是最好的選擇。
最后用一個比喻來總結(jié):建房子
用框架去開發(fā)項目,相當于你會起房子;
但是你要做的事情要從這里開始做:你要先給房子打基腳(基腳要挖幾米你要計算好)、房子有幾根柱子撐起你要計算承受力,
每層樓蓋幾個房間你也要計算好,每間房間怎么布局也要你來做。這些都做好了,然后你才來安裝窗戶,粉刷墻壁,貼墻紙...
用CMS去開發(fā)項目,相當于你只會裝修房子;
至于房子的基腳有多深,房子是幾層樓,每層樓的房間格局、玻璃的安裝窗口你都控制不了。
但是你要做的事情也很省事:你要做的事情就是在可以安裝玻璃的地方安裝什么牌子的玻璃(但是你不能修改該窗口是朝東開還是朝西開,因為這是建房子的人決定了的),
刷白色或者紅色的墻壁、貼什么內(nèi)容的墻紙(美女型或者森林型,由你定).....
這兩種結(jié)果誰好誰不好,要看你的興趣愛好了。如果你是個有個性的人,你可能就崇尚能建房子的能力,
如果你是比較懶惰的人,你可能崇尚那些只要裝修的房子讓你裝修就進去住了。
特別說明的是:如果房子的創(chuàng)建有問題,比如你想把一層樓創(chuàng)建4個房間改成5個房間,那就只能是有創(chuàng)建房子能力的人重新改造房子了,簡單的裝修工人是沒有權(quán)利的。
框架開發(fā)就是有改造房子的權(quán)利...
而你如果還是裝修房子中更為簡單的工作,比如只寫模板,只套模板,那你就相當于連電腦桌都要老板準備好,
你只是在電腦桌上怎么擺放你的電腦、鼠標、鍵盤而已,那種“家具齊全、直接拎包入住的酒店”就是最好的代表......