摘要:注意這個(gè)是的范例是一款基于的常駐內(nèi)存型高性能框架,框架的高性能特點(diǎn)非常適合開發(fā)接口,而且非常接近傳統(tǒng)框架,所以開發(fā)接口時(shí)非常簡(jiǎn)單。下面做一個(gè)開發(fā)接口的簡(jiǎn)單實(shí)例從表,通過(guò)獲取一篇文章。第四步使用測(cè)試,如下接口開發(fā)與測(cè)試完成,是不是很簡(jiǎn)單呀。
注意:這個(gè)是 MixPHP V1 的范例
MixPHP 是一款基于 Swoole 的常駐內(nèi)存型 PHP 高性能框架,框架的高性能特點(diǎn)非常適合開發(fā) API 接口,而且非常接近傳統(tǒng) MVC 框架,所以開發(fā)接口時(shí)非常簡(jiǎn)單。
下面做一個(gè)開發(fā) API 接口的簡(jiǎn)單實(shí)例:
從 articles 表,通過(guò) id 獲取一篇文章。
訪問(wèn)該接口的 URL:
http://www.e.com/articles/details?id=1
數(shù)據(jù)庫(kù)表結(jié)構(gòu)如下:
CREATE TABLE `articles` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `content` varchar(255) NOT NULL, `dateline` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;第一步
修改數(shù)據(jù)庫(kù)配置文件,MixPHP 的應(yīng)用配置文件中,關(guān)于數(shù)據(jù)庫(kù)的信息都引用了 common/config/database.php 文件。
第二步修改應(yīng)用配置文件:
修改 Response 組件默認(rèn)輸出格式為 JSON 格式。
修改 404/500 錯(cuò)誤輸出格式為 JSON 格式。
框架默認(rèn)的 404/500 響應(yīng)是網(wǎng)頁(yè),而 API 服務(wù)需要響應(yīng) JSON 數(shù)據(jù),通常其他傳統(tǒng) MVC 框架需要修改很多地方才可完成這個(gè)需求,MixPHP 本身就提供該種配置,只需修改一下配置即可。
MixPHP 的默認(rèn) HTTP 應(yīng)用中有兩個(gè)配置文件,分別為:
http_permanent.php : 部署在 mix-httpd 的常駐同步模式時(shí)使用。
http_compatible.php :部署在 Apache/PHP-FPM 時(shí)使用。
開發(fā) API 時(shí)我們推薦在 Apache/PHP-FPM 下開發(fā),上線再部署至 mix-httpd 即可,反正是無(wú)縫切換的。
現(xiàn)在我們修改 response 鍵名下的 defaultFormat 鍵為 mixhttpError::FORMAT_JSON,如下:
// 響應(yīng) "response" => [ // 類路徑 "class" => "mixhttpcompatibleResponse", // 默認(rèn)輸出格式 "defaultFormat" => mixhttpResponse::FORMAT_JSON, // json "json" => [ // 類路徑 "class" => "mixhttpJson", ], // jsonp "jsonp" => [ // 類路徑 "class" => "mixhttpJsonp", // callback鍵名 "name" => "callback", ], // xml "xml" => [ // 類路徑 "class" => "mixhttpXml", ], ],
然后修改 main_compatible.php 文件中 error 鍵名下的 format 鍵為 mixhttpError::FORMAT_JSON,如下:
// 錯(cuò)誤 "error" => [ // 類路徑 "class" => "mixhttpError", // 輸出格式 "format" => mixhttpError::FORMAT_JSON, ],第三步
創(chuàng)建控制器:
apps/index/controllers/ArticlesController.php
attributes = Request::get(); $model->setScenario("actionDetails"); if (!$model->validate()) { return ["code" => ErrorCode::INVALID_PARAM]; } // 獲取數(shù)據(jù) $data = $model->getDetails(); if (!$data) { return ["code" => ErrorCode::ERROR_ID_UNFOUND]; } // 響應(yīng) return ["code" => ErrorCode::SUCCESS, "data" => $data]; } }
創(chuàng)建錯(cuò)誤碼類:
apps/index/messages/ErrorCode.php
創(chuàng)建表單驗(yàn)證模型:
apps/index/models/ArticlesForm.php["integer", "unsigned" => true, "maxLength" => 10], ]; } // 場(chǎng)景 public function scenarios() { return [ "actionDetails" => ["required" => ["id"]], ]; } // 獲取詳情 public function getDetails() { return (new ArticlesModel())->getRowById($this->id); } }創(chuàng)建數(shù)據(jù)表模型:
apps/common/models/ArticlesModel.phpbindParams([ "id" => $id, ])->queryOne(); return $row; } }以上就是全部代碼的編寫。
第四步使用 Postman 測(cè)試,如下:
接口開發(fā)與測(cè)試完成,是不是很簡(jiǎn)單呀。
MixPHPGitHub: https://github.com/mixstart/m...
官網(wǎng):http://www.mixphp.cn/
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28369.html
摘要:消費(fèi)者開發(fā)本例我們使用的多進(jìn)程開發(fā)工具來(lái)完成這個(gè)需求,通常使用常駐進(jìn)程來(lái)處理隊(duì)列的消費(fèi),所以我們使用的類型,模式。中進(jìn)程負(fù)責(zé)執(zhí)行郵件發(fā)送任務(wù)。此時(shí)終端將打印成功收到測(cè)試郵件官網(wǎng) 注意:這個(gè)是 MixPHP V1 的范例 郵件發(fā)送是很常見的需求,由于發(fā)送郵件的操作一般是比較耗時(shí)的,所以我們一般采用異步處理來(lái)提升用戶體驗(yàn),而異步通常我們使用消息隊(duì)列來(lái)實(shí)現(xiàn)。 傳統(tǒng) MVC 框架由于缺少多進(jìn)程...
摘要:如何使用優(yōu)化高并發(fā)場(chǎng)景寫庫(kù)或者耗時(shí)計(jì)算在的接口中使用消息隊(duì)列,把要入庫(kù)的數(shù)據(jù)寫入的類型中。高容錯(cuò)子進(jìn)程異常奔潰時(shí),主進(jìn)程將重建子進(jìn)程。高性能多進(jìn)程運(yùn)行,充分利用多個(gè)并行計(jì)算,性能強(qiáng)勁。 經(jīng)常在群里聽到一些朋友問(wèn):TP 的項(xiàng)目怎么遷移到 mixphp 來(lái)處理高并發(fā),我通常都是回復(fù)需要重寫,可是一個(gè)開發(fā)很久的 TP 項(xiàng)目,代碼量巨大,又怎么可能會(huì)花大量時(shí)間成本來(lái)重寫呢? 那么為何我們不嘗試...
摘要:異步隊(duì)列消費(fèi)者開發(fā)只提供了模式下運(yùn)行控制器方法,并未提供主進(jìn)程多子進(jìn)程的進(jìn)程模型,并未提供多線程處理。多線程異步隊(duì)列服務(wù)只需寫好控制器方法,然后在配置文件中配置下路由命名空間進(jìn)程線程數(shù)量,就可在模式中啟動(dòng)多進(jìn)程多線程模型的異步隊(duì)列處理程序。 最近業(yè)余時(shí)間一直在開發(fā)ExpressPHP的第二個(gè)版本 MixPHP,今天下班想起之前一個(gè)面試官的問(wèn)題:你為什么還要再造一個(gè)輪子呢?仔細(xì)回想,第一...
摘要:框架最新源代碼行數(shù)行,因此可以很容易的改造它,成為你們公司的專屬框架。也不同于其他基于的微服務(wù)框架,只聚焦于微服務(wù)治理,定位于開發(fā)的更多領(lǐng)域,覆蓋從初創(chuàng)到億元級(jí)體量的技術(shù)訴求。的授權(quán)全靠用戶自愿購(gòu)買,詳情 MixPHP是什么 MixPHP 是秉承 普及 PHP 常駐內(nèi)存型解決方案,促進(jìn) PHP 往更后端發(fā)展 的理念而創(chuàng)造,采用 Swoole 擴(kuò)展作為底層引擎,圍繞常駐內(nèi)存的方式而設(shè)計(jì),...
摘要:寫基于和開發(fā)的失蹤兒童信息平臺(tái)。團(tuán)圓系統(tǒng)的全稱應(yīng)該是公安部?jī)和й櫺畔⒕o急發(fā)布平臺(tái),在新浪微博上有一個(gè)官方的微博賬號(hào),通過(guò)這個(gè)微博賬號(hào)發(fā)布兒童失蹤信息。 這是我在sf上的第一篇文章。寫基于swoole、Mixphp和CodeIgniter開發(fā)的失蹤兒童信息平臺(tái)。 在2017年的時(shí)候,關(guān)注到有一個(gè)團(tuán)圓系統(tǒng),它是公安部專門為了快速擴(kuò)散失蹤兒童消息的平臺(tái),但是網(wǎng)上并沒有找到這個(gè)平臺(tái)的地址。當(dāng)...
閱讀 1805·2023-04-26 02:14
閱讀 3727·2021-11-23 09:51
閱讀 1385·2021-10-13 09:39
閱讀 3971·2021-09-24 10:36
閱讀 3012·2021-09-22 15:55
閱讀 3518·2019-08-30 12:57
閱讀 2039·2019-08-29 15:30
閱讀 1986·2019-08-29 13:19