swoole擴展自己提供了web服務器功能,能夠替代php-fpm。 而若是僅僅用swoole框架,能夠像其它PHP框架同樣,運行在nignx、apache等web服務器中。php
swoole框架像PHP框架同樣,適用於web開發。 而swoole擴展是提供了更底層的服務器通訊機制,可使用UDP、TCP等協議,而不單單是http。css
安裝方式上也不同,swoole擴展像其它PHP擴展同樣安裝,能夠用pecl,也能夠編譯安裝。而swoole框架用composer引入以後安裝便可,或者下載源碼後手動include/require。html
另外,swoole框架依賴swoole擴展,是swoole擴展的應用實例。web
框架-Swoole擴展-Swoole文檔中心 http://wiki.swoole.com/wiki/page/p-framework.html數據庫
swoole擴展是基礎,基於swoole擴展,能夠作出多種框架,而不單單是web框架。apache
框架採用惟一接口對象機制。數組
調用框架的第一步,require('config.php');首先要包含config.php ,而後會生成$php對象。 若是在Controller、Model、View中,經過$this->swoole來調用。若是在函數,或者是其餘被include的程序中,經過global $php來引用。緩存
$php->db | 數據庫接口 |
$php->cache | 緩存系統接口 |
$php->tpl | Smarty模板引擎接口 |
$php->model | 調用Model對象接口 |
$php->mvc | MVC結構數據 |
$php->plugin | 插件系統接口 |
<?php /* 導入config.php文件,這是調用框架必須的第一步 config.php會載入基本配置選項,和基本函數,並生成全局接口變量$php 在代碼的任何位置處,均可以經過global $php來引用全局接口對象 */ require('config.php'); $res = $php->db->query('select * from test_table'); //執行SQL語句,獲得一個查詢的結果,查詢結果,能夠獲取數據 $res->fetch(); //獲取單條數據。是字段-值,組成的關聯數組。 $res->fetchall(); //獲取所有 $data = array(); $data['title'] = 'hello wolrd!'; $data['author'] = 'me'; $php->db->insert($data,'test_table'); //將關聯數組按照鍵值對應轉爲字段-值對應,插入到數據庫表test_table中。 //insert into test_table(title,author) values('hello wolrd!','me') /* $php->db->delete() 刪除數據 $php->db->update() 更新數據 具體請參考Database類 */ /* 模板操做,內置smarty模板引擎 */ $php->tpl->assign('title','hello world!'); $php->tpl->display('index.html'); ?>
假設根目錄爲$ROOT。服務器
$ROOT /apps:應用程序代碼,此目錄中的代碼是公用的,包括類,配置,模板,控制器,Model等。此目錄不得放置靜態文件,如js, css, jpg, html等,必須所有爲.php文件。此目錄不容許http直接訪問。swoole
Ø $ROOT/apps/controllers Web應用的控制器類代碼
Ø $ROOT/apps/models 數據模型封裝類代碼
Ø $ROOT/apps/configs 配置文件,經過$php->config['db']['master']這樣來訪問
Ø ROOT/apps/classes 類庫,這裏存放全部用戶定義的類,必須符合psr-0規範,文件名必須爲 {類名}.php,頂層命名空間必須爲App
Ø $ROOT/apps/templates 模板文件目錄
² 命名空間:如 new App\Hello\Test 類,會映射到 $ROOT/apps/classes/Hello/Test.php
² 配置文件:如 $php->config['db']['master'] 或 Swoole::getInstance()->config['db']['master'] 會映射到$ROOT/apps/configs/db.php文件,db.php中必須返回數組,key爲master。
² 數據模型:model('UserInfo')或者$php->model->UserInfo 會映射到$ROOT/apps/models/UserInfo.php
靜態文件目錄,好比js, css, jpg, html等。
web網站單一入口文件,可直接放到根目錄,或者單獨創建目錄存放,如$ROOT/webroot/index.php
服務器程序啓動入口。
使用swoole的MVC管理,控制器類必須符合下列規範
² 代碼放置到apps\controllers目錄下
² 類名首字母必須爲大寫
² 必須繼承自Swoole\Controller