Swoole介紹-真正的PHP Web開發架構____PHP

來源:互聯網
上載者:User

一、Swoole架構介紹

swoole是一套設計非常精巧,有效提高開發效率的PHP架構。Swoole有統一的唯一全域對象,類似於Java的註冊樹,掛載了常用的一些對象,如資料庫、模板引擎、緩衝系統、日誌系統、事件處理系統等。可以很方便地調用功能,快速開發。使用swoole架構,僅需配置一個config.php檔案,在其他PHP檔案中只需要require config.php檔案,即可調用架構的所有功能。

swoole通過設定檔可以實現在輕鬆更換模組驅動方式。比如資料庫連接,可以很方便得在Pdo MySQL MySQLi之間更換。緩衝可以用filecache,也可以用dbcache,還可以用memcache。日誌可以用資料庫日誌,也可以用系統日誌或檔案日誌。

代碼:

Php代碼  <?php   require 'config.php';   //自動載入模組   $php->autoload('db','tpl','cache','log','event','upload');   //資料庫查詢   $res = $php->db->query('select * from test');   $one = $res->fetch();   $all = $res->fetchall();   //日誌   $php->log->info('hello');   //緩衝   $php->cache->get('cache_key');   $hello = $php->cache->set('cache_key','me',1800);   //模板   $php->tpl->assign('hello',$hello);   $php->tpl->display('index.html');    

 

Swoole提供了很多類庫工具,表單產生、輸入驗證和過濾,登入驗證處理,JS產生,Ajax支援,調試工具,用戶端操作,URL合并拆分工具等。

另外也提供,網路類(Block、Select、Event的TCP、UDP Server & Client),也提供一些簡單的伺服器協議實現(HTTP,Chat,FTP,SMTP,POP3等)。還有2個js類庫,UI庫和表單驗證。 二、進階應用程式

Swoole架構也提供了MVC的apps結構。通過contoller的繼承,實現商務邏輯的封裝,model的繼承,實現資料操作的封裝,view層使用smarty模板引擎實現頁面顯示的邏輯封裝。

Swoole架構提供了強大的Model類,有get,gets,set,sets,del,dels,put可以非常方便的實現資料庫的增刪查改,gets介面還有自動分頁的功能。

swoole的SQL封裝很靈活,它的特色是,所有的SQL拼接都使用數組的方式,而不是對象方法,這樣資料庫查詢參數可以和PHP的$_GET,$_POST,$_SESSION,Cache,Cookie無縫整合。

代碼:

  Php代碼  <?php   $model = createModel('TestModel');   $gets['where'][] = 'id>1';   $gets['order'] = 'id desc';   $gets['limit'] = 10;   $gets['where'][] = 'category=10';   $gets['select'] = 'id,title,name'];   $gets['leftjoin'] ….      $data = $model->gets($gets);    

Swoole中也有ORM的資料庫操作方式,可以參考開發手冊。

Swoole MVC URL路由方式,是通過使用者提供的函數完成的,使用者函數只需要返回具體調用哪個Controller的哪個Method。配合使用url rewrite,可以定製出任意的URL方案,比如/controller/action/ , controller_action.do,controller/action.do等。或者像Django一樣完全使用正則來規定URL。

Event

Swoole提供了一個事件觸發系統。

$php->event->raise('sendsms',$mobile,$sms_content);

這是一個很酷的設計,如果在本地測試環境中,你可是配置為同步,那麼raise引發一個時間後,去執行事件對應的handle函數。如果是伺服器環境,可以設定為非同步,那麼raise只會向Queue伺服器投遞一個事件。在後台啟動一個守護進程,從Queue伺服器取得事件,然後再用handle函數去處理。

Upload

swoole可以對上傳檔案統一處理,限制上傳大小。上傳圖片的話,可以自動壓縮圖片尺寸,產生縮圖。 三、部署方式和壓力測試

Swoole架構可以像正常的PHP一樣方式部署於典型的LAMP環境。也可以採用Swoole本身提供的Http Server方式運行。

普通LAMP方式,由於每次請求包含的php檔案較多,最好安裝APC等OPCode緩衝。壓力測試,同樣的代碼,運行效率略低於thinkphp,但遠超CodeIgniter,差不多是2倍以上。

值得一提的是以Server方式啟動並執行Swoole,效能極為強悍。是同樣代碼Apache

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.