溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

swoole框架的使用示例

發(fā)布時間:2021-04-30 09:24:15 來源:億速云 閱讀:142 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)swoole框架的使用示例,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

正文

swoole有兩個部分。 一個是PHP擴展,用C開發(fā)的,這是核心。 另一個是框架,像yii、TP、Laravel一樣,是PHP代碼寫的。

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

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

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

另外,swoole框架依賴swoole擴展,是swoole擴展的應(yīng)用實例。

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

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

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

調(diào)用框架的第一步,require('config.php');首先要包含config.php ,然后會生成$php對象。 如果在Controller、Model、View中,通過$this->swoole來調(diào)用。如果在函數(shù),或者是其他被include的程序中,通過global $php來引用。

$php->db數(shù)據(jù)庫接口
$php->cache緩存系統(tǒng)接口
$php->tplSmarty模板引擎接口
$php->model調(diào)用Model對象接口
$php->mvcMVC結(jié)構(gòu)數(shù)據(jù)
$php->plugin插件系統(tǒng)接口
<?php 
/* 
導(dǎo)入config.php文件,這是調(diào)用框架必須的第一步 
config.php會載入基本配置選項,和基本函數(shù),并生成全局接口變量$php 
在代碼的任何位置處,都可以通過global $php來引用全局接口對象 
*/
require('config.php'); 
$res = $php->db->query('select * from test_table'); //執(zhí)行SQL語句,得到一個查詢的結(jié)果,查詢結(jié)果,可以獲取數(shù)據(jù) 
$res->fetch(); //獲取單條數(shù)據(jù)。是字段-值,組成的關(guān)聯(lián)數(shù)組。 
$res->fetchall(); //獲取全部 
$data = array(); 
$data['title'] = 'hello wolrd!'; 
$data['author'] = 'me'; 
$php->db->insert($data,'test_table'); //將關(guān)聯(lián)數(shù)組按照鍵值對應(yīng)轉(zhuǎn)為字段-值對應(yīng),插入到數(shù)據(jù)庫表test_table中。 
//insert into test_table(title,author) values('hello wolrd!','me') 
/* 
$php->db->delete() 刪除數(shù)據(jù) 
$php->db->update() 更新數(shù)據(jù) 
具體請參考Database類 
*/
/* 
模板操作,內(nèi)置smarty模板引擎 
*/
$php->tpl->assign('title','hello world!'); 
$php->tpl->display('index.html'); 
?>

目錄規(guī)范:

假設(shè)根目錄為$ROOT。

$ROOT/apps

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

?  $ROOT/apps/controllers Web應(yīng)用的控制器類代碼

?  $ROOT/apps/models 數(shù)據(jù)模型封裝類代碼

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

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

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

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

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

2  數(shù)據(jù)模型:model('UserInfo')或者$php->model->UserInfo 會映射到$ROOT/apps/models/UserInfo.php

$ROOT/static

靜態(tài)文件目錄,比如js, css, jpg, html等。

$ROOT/index.php

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

$ROOT/server.php

服務(wù)器程序啟動入口。

控制器Controller

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

2  代碼放置到apps\controllers目錄下

2  類名首字母必須為大寫

2  必須繼承自Swoole\Controller

關(guān)于“swoole框架的使用示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI