支持讀寫分離、數據緩存、頁面緩存的高性能PHP框架

rubyPHP項目地址:https://github.com/jiangliuer326442/rubyPHP

使用過CI和thinkPHP,CI簡單卻過於原始,thinPHP功能強大卻太過龐大,鑑於以上原因,花了幾天時間寫了一個比CI代碼簡單卻並thinkPHP功能複雜的框架——rubyPHP。

rubyPHP的高性能體現在以下幾個方面:

1.頁面緩存頁面緩存指之前加載過的頁面以文件方式緩存在服務器中,在一段時間內再次加載相同頁面時無需重新執行頁面邏輯直接加載靜態頁面。rubyPHP的頁面緩存是自動進行的,在config/tpl.php中可配置是否啓用緩存以及緩存文件的有效期。當然這僅僅是全局設置,在調用視圖時可重新指定是否啓用緩存以及緩存有效期。

2.SQL緩存sql緩存指之前執行過的查詢sql語句以及他的結果緩存在內存中,在一段時間內用相同的sql語句執行查詢操作時不經過數據庫直接返回內存中數據。rubyPHP使用Redis以鍵值方式緩存sql語句以及他的對應結果。rubyPHP能夠在php7上完美運行。(附:關於windows php7 redis 擴展的下載參照我的另一篇博客:http://blog.csdn.net/fanghailiang2016/article/details/51396649)。rubyPHP重寫了mysql_query以及mongo_query方法,在執行查詢sql查詢語句時會優先加載未過期的緩存數據。與頁面緩存類似,sql緩存的全局配置路徑爲config/redis.php,在具體執行sql語句前可重新執行是否使用緩存以及緩存有效期。

3.讀寫分離讀寫分離是建立在主從同步基礎上爲了減輕服務器壓力,將查詢語句轉移到從服務器上執行的解決方案。rubyPHP重寫了mysql_query,mongo_query函數,除了對查詢語句進行內存級緩存的優化,同時也將查詢語句放到了從服務器上執行。mysql的主從配置文件路徑爲config/mysql.php。

4.html壓縮。html壓縮配合頁面緩存,前者降低了服務器端壓力,後者減少了輸出內容所佔空間,將html文件中的空格換行等進行壓縮,減少了輸出文件的大小,在一定程度上保護了html的安全。

rubyPHP在代碼結構上模仿CI,在功能上模仿thinkPHP。

rubyPHP的功能包含以下幾方面:

1.使用了thinkPHP的M方法操作數據庫。對於一些簡單的sql語句無需手工寫,用熟悉的M()->where()->limit()->find()這樣的語法即可完成。曾經面試有人問我爲什麼thinkPHP的M方法能夠進行連續操作,現在終於明白是使用了單利模式

2.屏蔽了數據庫的差異。M方法的另一個優點是用來組件sql語句,對高層屏蔽數據庫差異。當然,對於複雜的查詢,M方法是做不到的,此時可以使用已被重寫過的mysql_query以及mongo_query執行你的sql語句。

3.自定義路由。這一點模仿了CI的route.php,將url同控制器的映射關係寫到一個配置文件裏。

不足之處:

view文件不支持變量循環輸出。目前的解決方案是使用angularjs調用接口在頁面輸出內容。框架示例程序便是一個使用angularjs的和bootstrap的界面。

以下是界面截圖


並且他的html是壓縮輸出的


查詢時調用了緩存




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章