標籤:

用 ThinkPHP 這樣的框架開發門戶網站,有什麼缺點?

相比自己純源開發來說,用thinkphp肯定開發速度會快些但對於長期運行,以後可能會有很大訪問量的門戶網站來說,用thinkphp框架會有什麼缺點嗎,比如執行速度,負載等方面


就php框架本身來說

國內使用情況

thinkphp可以說是國產最熱框架,各大公司都在用,更別提個人了.

我知道的金山,騰訊,dnspod都在用,我也在用.

原則就是團隊對什麼技術掌握的最多,就用什麼技術,換成框架來說就是團隊對某個框架最熟悉,那麼就用這個最熟悉的框架

框架對比

php的框架五花八門,重型的zf,symfony2,流行的ci,yii,Larave

高性能版的C語言寫的php擴展.國外Phalcon,國內鳥哥的 Yaf,也是微博使用的

這裡未列出的還有好多好多.還有很多高手自己維護自己的"框架"

這些個框架國內都有人使用. 至於選什麼框架,完全看自己技術團隊的技術實力,以及評比結果那個更適合自己.

用php的網站來說

性能再差的php框架可以用系統構架來做。高並發的網站不是一台機器來抗.

多機php負載均衡.

先抗住再優化.

好多公司都幾十上百台了php才來做大規模的調優,對非常消耗cpu的地方來重點優化,和重構,或者其他語言重構. 當然優化也是從編碼 到上線 監控日誌. 優化是長期不斷的過程.也不緊緊是一次大規模重構.

抽離靜態資源. 會話session,可以放在redis memcache中去.

資料庫讀寫分離. 讀多機群集.

上redis 等NoSql把熱數據堆這裡來.

啟用cdn系統加快靜態文件分發. 小規模三方,大規模自建.

用thinkphp一樣可以高並發,就是看你怎麼做構架了.

以上簡單一說.

總之就是

系統瓶頸不在語言或框架上,而是在構架上.

好的構架不就是堆機器么.


如果單純從業務來看,門戶網站的業務邏輯足夠簡單,TP可以完全勝任。如果說關於這個性能啥的,我還真的不認為TP會成為性能的犧牲者。哪有門戶網站不做緩存的,都緩存了,框架性能就不是第一要素了。

而且,基本上也不可能單純用PHP來完成一個門戶,還有更多,比如sync,C擴展、資料庫同步等等。


看人了。還是應該先開發出來。開發時獲取數據這一塊注意不要跟資料庫強耦合,不要不加處理直接使用以資料庫的欄位為key的數組。因為以後有量時十有八九要分表、加緩存、換 NoSQL 等等。


php的速度瓶頸絕對不是在執行上面,不然他也不會成為一種不用編譯,而是每訪問一次編譯一次的語言,php優點就是執行特別快,這個和框架無關,我覺得php的速度瓶頸在資料庫,如何更加高效的存儲和讀取,以及分類數據,是更重要的。所以資料庫的設計要好好研究一下,當然,還有上面說的,各種緩存技術,無論是轉靜態也好,還是服務員緩存技術也好,都是不錯的方法!


這一塊看構架。有一些問題需要優化,例如本地寫的的問題。

例如,超大訪問量對於nosql的考慮,隊列的考慮,分庫分表的考慮。

這是程序方面。

構架方面自己需要分情況去看


如何tp不能再用了,說明 你們的錢也有了。


除了源碼看起來費勁外,其它都還好,不過簡單的可以看看slightphp


TP還是不錯的,至少從框架上來說,但是問題也是存在的,太佔CPU了,容易導致伺服器「卡死」;流量少,訪問率低你會發現沒什麼問題,但是你可以一直接按F5進行刷新,你就會知道了那CPU是怎麼上去的。


TP5近似Larave啊


會有很大負載的網站,前台根本就不能用tp,任何框架都不可以。 框架帶來開發便捷的同時,會有性能損耗。


先做出來再說,如果確定流量很大,需要考慮的是構架,網站整體架構,靜態、緩存、資料庫、CDN、負載等等等等。。。不是用哪個框架了,

跟框架沒關係,門戶站都是靜態化的。框架最多用來做管理後台。前台部分動態數據的提交根據需要寫個就是了。

如果不大,那麼每個框架都可以滿足你的要求,就看你喜歡用哪個,哪個用的順手。


thinkphp 基本上來說不是運行很快的框架,但是系統服務構架設計和硬體設備相同的情況下。基本到大一定程度也不是最慢的。另外速度快慢完全要看你程序構架如何設計了。


thx


TP的響應速度相比其他的要慢很多,開發速度上,比其他的上手快很多,看自己的項目了。不過TP是開源的,有些東西可以自己把控。


TP是一個很好的框架,我們已經有很多這樣的成功產品,等你的網站流量很大的時候就不是框架以前哦去解決的問題了


建議使用開源CMS,部分模塊二開。完全用TP來做,周期長,易用性低。架構做得好,執行速度和負載沒問題。


推薦閱讀:

使用PHP實現查找附近的人
Apache是否優於Nginx?
相對於別的php框架來說thinkphp有什麼缺點嗎?
如何滿足PHP源代碼加密和混淆的需求?

TAG:PHP |