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