2011-04-11 57 views
1

是否有一個良好的PHP MVC/ORM框架列表,將與Facebook的HipHop一起工作?PHP MVC/ORM框架是超PHP(HipHop)就緒

+2

大的兼容性列表可能不存在。小型框架無障礙工作的可能性更高。另一個前面的討論:http://stackoverflow.com/questions/2190270/can-i-use-facebooks-hiphop-with-frameworks-like-zend-framework-cakephp-symphon – mario 2011-04-11 16:10:12

+2

嘻哈在小中型系統上毫無意義 – dynamic 2011-04-11 16:22:45

+1

我將以一個龐大的系統結束。 – BuddyJoe 2011-04-11 17:18:23

回答

5

首先,您應該知道當前HipHop沒有完整的PHP 5.3支持,並且您不能使用所有擴展。其次,如果你打算構建一個可以在Facebook和用戶基礎上進行比較的應用程序(我真的懷疑),那麼使用ORM將是如何吸引項目的最佳方式之一。

我無意重複同一首歌曲&再次圍繞ORM跳舞,那麼,read this earlier comment

最後一項:在大型項目中,人們不使用罐裝框架。他們在內部寫一個然後使用它,因爲大型項目有非常特殊的要求,而流行的mvc框架傾向於具有一切 - 但廚房接收方法來添加功能。

而且,如果您不打造與Facebook一樣大的項目,那麼您不需要HipHop。

2

除非實際上有可以直接歸因於PHP性能的性能問題,否則我強烈建議避免使用HipHop。它當然可以(如果使用得當)處理極高的流量,但它也不完全兼容PHP。如前所述,並非所有的PHP擴展都可以在HipHop中使用。

如果您遇到性能問題,那麼您在使用HipHop之前還有其他選擇。首先,檢查腳本的性能,確定瓶頸並優化它們。這是您控制最多的應用程序的一部分,因此也是您應該啓動的地方。與外部資源(特別是數據庫和遠程服務器)的交互是一個很好的起點,因爲這是操作往往花費最多時間的開銷。數據庫性能可以通過減少查詢負載和明智地選擇索引來提高(提示,ORM傾向於產生非最優查詢模式)。您還可以將特別昂貴的操作卸載到脫機運行的cron-jobs,並讓聯機腳本將操作排隊。

如果這不能提供足夠的性能提升,那麼就有APC將PHP代碼緩存在一個「字節代碼」中(因爲需要一個更好的術語),在它可以運行之前不必解析由Zend引擎。這提供了性能提升。您還可以執行其他操作,如使用memcache進行緩存,緩存結果等,以獲得進一步的性能提升。

如果你還沒有得到足夠的表現,那麼,只有那樣,你應該考慮HipHop。你應該認爲這是最後的手段,而不是第一種手段。你也不應該擔心優化一個項目,直到它明顯受到性能問題的困擾。

永遠不要做過早的優化。

+0

與hhvm不兼容的擴展名很少被人們使用,大多數95%的PHP項目甚至都不會使用這些擴展名,所以您仍然覆蓋95%的php,但無論如何,我在生產環境中將它用於Magento Redis和Memcached,它就像一個魅力,有一定的問題,但有工作,我得到的性能提高了50%,比php 5.5.x – 2015-01-13 14:43:40