1. 程式人生 > >Php一些感悟

Php一些感悟

作為新手我一直不瞭解什麼是CMS和框架的區別,剛好最近學習到了ThinkPHP,就找了這篇文章。很多人學了許久的PHP,但對於框架和CMS的認識比較模糊。

這個其實很重要,應該全面而清晰的認識。

1 . 各自代表

框架代表:ThinkPHP(簡稱TP,以及它的最新版TP5),Laravel,YII,CI,…

CMS:Content Management System:內容管理系統;代表有:PHPCMS,dedecms,phpMyWind,帝國CMS,Ecshop,ECMall,Discuz,PHPWind

2 . 知識難度

框架需要的知識含金量比較高,對面向物件程式設計思想要深入理解,也要深刻懂MVC原理,單入口原理,標籤解析引擎原理,方可以靈活使用框架去開發;
所以它是適應PHP基礎比較全面的人;

而CMS不需要那麼高深的知識,你稍微懂PHP一些語法,基礎東西,就可以依葫蘆畫瓢的使用CMS開發出一個簡單的專案,而且速度還比較快(但是維護起來會頭痛)。

CMS對PHP入門級的人是最愛。

3 . 應用範疇

CMS的應用範圍有侷限,要選對,否則後患無窮。如:某類CMS只適合開發一類專案,選錯了可能要重新開發。

比如PHPCMS適合開發文章型別的管理系統,Ecshop適合開發商城型別的專案,Discuz適合開發論壇型別的專案;

但是你如果要用Ecshop來開發論壇,就需要改的地方太多了,那就會走很多彎路…

而框架,因為屬於更底層的東西,所以它可以用來開發任何型別的專案。

另外,框架還可以開發CMS出來,但反過來,CMS就不能用來開發框架(會造成效能太低)。

4 . 開發特點

在框架中,你可能看不到一個具體的控制器子類檔案,所以基於框架的開發,首先要你自己來寫控制器檔案,還要安排在什麼位置寫,

這些都有框架自己的規矩,雖然也可以靈活的修改資料夾的位置,但你要麻煩的去尋找為什麼。

而CMS等開源系統,這些檔案都是幫你寫好了的,位置也會幫你安排好,你在那些現成的檔案上修修改改基本上就可以了。你會少很多事情。

5 . 靈活對比

用框架去開發,你可以隨意修改你的專案模組架構,可以隨意新增你想要的功能,如:你想在文章系統中添加個旅遊模組也可以;

例項:“PHP葵花寶典”專案(www.phpkhbd.com)就是用框架開發出來的,可以方便的新增任何想要的功能。

但CMS你要想做到這種穿插功能交集就比較麻煩了。

6 . 速度對比

用框架去開發,開發的時候速度慢,但後續修改靈活,同時速度會很快,遇到問題可以馬上知道處在哪裡了,可謂是“一步到位、一針見血”。

用CMS去開發:開發的時候速度快,但後續修改特別是新增功能模組的時候,就不夠靈活,會造成速度很慢,甚至不大可能實現。

打個比方:你用框架開發的專案,開發的時候可能需要2個月,但你後續升級專案,添加個什麼功能可能只要1個星期。

而你用CMS去開發,開發專案上線可能只要3個星期,但是你升級功能、新增新功能模組、可能也要3個星期甚至更多,還有可能實現不了,

或者強加進去會造成該模組效能甚至整個系統的效能大大降低。而且每次升級都是這樣。

所以,該如何選擇,你應該清楚了吧:如果想做一個長久更新的專案,那使用框架去開發是最好的選擇。

最後用一個比喻來總結:建房子

用框架去開發專案,相當於你會起房子;

但是你要做的事情要從這裡開始做:你要先給房子打基腳(基腳要挖幾米你要計算好)、房子有幾根柱子撐起你要計算承受力,

每層樓蓋幾個房間你也要計算好,每間房間怎麼佈局也要你來做。這些都做好了,然後你才來安裝窗戶,粉刷牆壁,貼牆紙…

用CMS去開發專案,相當於你只會裝修房子;

至於房子的基腳有多深,房子是幾層樓,每層樓的房間格局、玻璃的安裝視窗你都控制不了。

但是你要做的事情也很省事:你要做的事情就是在可以安裝玻璃的地方安裝什麼牌子的玻璃(但是你不能修改該視窗是朝東開還是朝西開,因為這是建房子的人決定了的),

刷白色或者紅色的牆壁、貼什麼內容的牆紙(美女型或者森林型,由你定)…

這兩種結果誰好誰不好,要看你的興趣愛好了。如果你是個有個性的人,你可能就崇尚能建房子的能力,

如果你是比較懶惰的人,你可能崇尚那些只要裝修的房子讓你裝修就進去住了。

特別說明的是:如果房子的建立有問題,比如你想把一層樓建立4個房間改成5個房間,那就只能是有建立房子能力的人重新改造房子了,簡單的裝修工人是沒有權利的。

框架開發就是有改造房子的權利…

而你如果還是裝修房子中更為簡單的工作,比如只寫模板,只套模板,那你就相當於連電腦桌都要老闆準備好,

你只是在電腦桌上怎麼擺放你的電腦、滑鼠、鍵盤而已,那種“傢俱齊全、直接拎包入住的酒店”就是最好的代表…

作者:foreverlikui
來源:CSDN
原文:https://blog.csdn.net/foreverlikui/article/details/78217469
版權宣告:本文為博主原創文章,轉載請附上博文連結!