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