詳解swoole框架快速入門

?詳解swoole框架快速入門

swoole有兩個部分。 一個是php擴展,用C開發的,這是核心。 另一個是框架,像YII、TP、laravel一樣,是PHP代碼寫的。

swoole擴展本身提供了web服務器功能,可以替代php-fpm。 而如果僅僅用swoole框架,可以像其它php框架一樣,運行在nignx、apache等web服務器中。

swoole框架像PHP框架一樣,適用于web開發。 而swoole擴展是提供了更底層的服務器通信機制,可以使用udp、TCP等協議,而不僅僅是http。

安裝方式上也不一樣,swoole擴展像其它PHP擴展一樣安裝,可以用pecl,也可以編譯安裝。而swoole框架用composer引入之后安裝即可,或者下載源碼后手動include/require

另外,swoole框架依賴swoole擴展,是swoole擴展的應用實例。

框架-Swoole擴展-Swoole文檔中心 http://wiki.swoole.com/wiki/page/p-framework.html

swoole擴展是基礎,基于swoole擴展,可以做出多種框架,而不僅僅是web框架。

?推薦(免費):swoole

框架采用唯一接口對象機制。

調用框架的第一步,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

$ROOT /apps:應用程序代碼,此目錄中的代碼是公用的,包括類,配置,模板,控制器,Model等。此目錄不得放置靜態文件,如JS, css, jpg, html等,必須全部為.php文件。此目錄不允許http直接訪問。

?? $ROOT/apps/controllers Web應用的控制器類代碼

?? $ROOT/apps/models 數據模型封裝類代碼

?? $ROOT/apps/configs 配置文件,通過$php->config[‘db’][‘master’]這樣來訪問

?? ROOT/apps/classes 類庫,這里存放所有用戶定義的類,必須符合psr-0規范,文件名必須為 {類名}.php,頂層命名空間必須為App

?? $ROOT/apps/templates 模板文件目錄

?

2? 命名空間:如 new AppHelloTest 類,會映射到 $ROOT/apps/classes/Hello/Test.php

2? 配置文件:如 $php->config[‘db’][‘master’] 或 Swoole::getInstance()->config[‘db’][‘master’] 會映射到$ROOT/apps/configs/db.php文件,db.php中必須返回數組,key為master。

2? 數據模型:model(‘UserInfo’)或者$php->model->UserInfo 會映射到$ROOT/apps/models/UserInfo.php

$ROOT/Static

靜態文件目錄,比如js, css, jpg, html等。

$ROOT/index.php

web網站單一入口文件,可直接放到根目錄,或者單獨建立目錄存放,如$ROOT/webroot/index.php

$ROOT/server.php

服務器程序啟動入口。

控制器Controller

使用swoole的MVC管理,控制器類必須符合下列規范

2? 代碼放置到appscontrollers目錄下

2? 類名首字母必須為大寫

2? 必須繼承SwooleController

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享