<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PhalApi開源接口框架有多好用?最全后端PHP開發(fā)攻略整理

          共 8348字,需瀏覽 17分鐘

           ·

          2021-07-13 13:58

          PhalApi開源接口框架

          讀音:派框架,官網(wǎng):https://www.phalapi.net/


          PhalApi是一個PHP輕量級開源接口框架,致力于快速開發(fā)接口服務(wù)。支持HTTP/SOAP/RPC等協(xié)議,可用于搭建接口/微服務(wù)/RESTful接口/Web Services。承諾永久免費,可用于商業(yè)用途。 


          它支持自動生成接口文檔、自動進行參數(shù)校驗、自動生成單元測試代碼、自動擁有CURD數(shù)據(jù)接口、自動安裝程序,讓接口開發(fā)更簡單、更高效、更專業(yè)。


          PhalApi官網(wǎng)截圖:


          在線示例

          使用PhalApi開源接口框架,能快速開發(fā)編寫你的API接口,并能自動生成在線接口文檔。


          在線示例:

          • 在線接口文檔:http://demo.phalapi.net/docs.php

          • 接口詳情文檔(以默認接口為例):http://demo.phalapi.net/docs.php?service=App.Site.Index&detail=1&type=fold

          • 默認接口服務(wù):http://demo.phalapi.net/?s=App.Site.Index


          PhalApi會根據(jù)你編寫的接口的參數(shù)配置和代碼注釋,自動實時生成在線接口文檔。接口列表頁效果類似如下:


          PhalApi還支持在線接口測試、請求示例說明、生成離線版HTML接口文檔、實時更新。接口文檔詳情頁效果類似如下:

          快速安裝

          composer一鍵安裝

          使用composer創(chuàng)建項目的命令,可實現(xiàn)一鍵安裝。

          $ composer create-project phalapi/phalapi

          溫馨提示:關(guān)于composer的使用,請參考Composer 中文網(wǎng) / Packagist 中國全量鏡像。

          手動下載安裝

          或者,也可以進行手動安裝。將此Git項目代碼下載解壓后,進行可選的composer更新,即:

          $ composer update

          部署

          Nginx配置

          如果使用的是Nginx,可參考以下配置。

          server {    listen 80;    server_name dev.phalapi.net;    # 將根目錄設(shè)置到public目錄    root /path/to/phalapi/public;    charset utf-8;
          location / { index index.php; }
          location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; # 根據(jù)當前環(huán)境,選擇合適的通訊方式 # fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }}

          配置時需要將網(wǎng)站根目錄設(shè)置到public目錄,配置保存后重啟nginx。

          溫馨提示:推薦將訪問根路徑指向/path/to/phalapi/public。


          數(shù)據(jù)庫配置

          如何使用的是MySQL數(shù)據(jù)庫,參考修改./config/dbs.php數(shù)據(jù)庫配置。

          return array(    /**     * DB數(shù)據(jù)庫服務(wù)器集群 / database cluster     */    'servers' => array(        'db_master' => array(                       // 服務(wù)器標記 / database identify            'type'      => 'mysql',                 // 數(shù)據(jù)庫類型,暫時只支持:mysql, sqlserver / database type            'host'      => '127.0.0.1',             // 數(shù)據(jù)庫域名 / database host            'name'      => 'phalapi',               // 數(shù)據(jù)庫名字 / database name            'user'      => 'root',                  // 數(shù)據(jù)庫用戶名 / database user            'password'  => '',                      // 數(shù)據(jù)庫密碼 / database password            'port'      => 3306,                    // 數(shù)據(jù)庫端口 / database port            'charset'   => 'UTF8',                  // 數(shù)據(jù)庫字符集 / database charset            'pdo_attr_string'   => false,           // 數(shù)據(jù)庫查詢結(jié)果統(tǒng)一使用字符串,true是,false否            'driver_options' => array(              // PDO初始化時的連接選項配置                // 若需要更多配置,請參考官方文檔:https://www.php.net/manual/zh/pdo.constants.php            ),        ),    ),
          // 更多代碼省略……);


          最后,需要給runtime目錄添加寫入權(quán)限。

          運行和使用

          調(diào)用接口

          在PhalApi,你可以通過service參數(shù)(短名字是s參數(shù))指定需要調(diào)用的接口服務(wù)。例如,訪問默認接口服務(wù)。

          http://dev.phalapi.net/?s=App.Site.Index

          接口請求后結(jié)果輸出類似如下:

          {    "ret": 200,    "data": {        "title": "Hello PhalApi",        "version": "2.4.2",        "time": 1501079142    },    "msg": ""}

          對應(yīng)執(zhí)行的PHP代碼在./src/app/Api/Site.php文件,源碼片段如下:

          <?phpnamespace App\Api;use PhalApi\Api;
          /** * 默認接口服務(wù)類 * @author: dogstar <chanzonghuang@gmail.com> 2014-10-04 */class Site extends Api { public function getRules() { return array( 'index' => array( 'username' => array('name' => 'username', 'default' => 'PhalApi', 'desc' => '用戶名'), ), ); }
          /** * 默認接口服務(wù) * @desc 默認接口服務(wù),當未指定接口服務(wù)時執(zhí)行此接口服務(wù) * @return string title 標題 * @return string content 內(nèi)容 * @return string version 版本,格式:X.X.X * @return int time 當前時間戳 * @exception 400 非法請求,參數(shù)傳遞錯誤 */ public function index() { return array( 'title' => 'Hello ' . $this->username, 'version' => PHALAPI_VERSION, 'time' => $_SERVER['REQUEST_TIME'], ); }}

          運行效果,截圖如下:

          自動生成的接口文檔詳情頁局部截圖如下:

          翻譯

          修改./public/init.php文件,可設(shè)置當前語言。

          // 翻譯語言包設(shè)定-簡體中文\PhalApi\SL('zh_cn');
          // Setting language to English\PhalApi\SL('en');


          一張圖告訴你如何使用PhalApi 2.x

          PhalApi開發(fā)文檔

          專為PHPer準備的優(yōu)雅而詳細的開發(fā)文檔,基本都能在文檔找到你要的答案,請看:PhalApi 2.x 開發(fā)文檔,http://docs.phalapi.net/#/v2.0/。


          文檔使用markdown編寫,文檔頁面截圖如下:


          開發(fā)文檔大綱:

          PhalApi 2.x 開發(fā)文檔
          前言 前言 如何升級PhalApi
          一、快速開發(fā) 1.1下載與安裝 1.2 運行Hello World 1.3 如何請求接口服務(wù) 1.4 接口響應(yīng)與在線調(diào)試 1.5 Api接口層 1.6 DataApi通用數(shù)據(jù)接口 1.7 Domain領(lǐng)域?qū)优cADM模式 1.8 Model數(shù)據(jù)層與數(shù)據(jù)庫操作 1.9 DataModel數(shù)據(jù)基類 1.10 單元測試 1.11 自動加載和PSR-4 1.12 接口文檔 1.13 初始化
          二、數(shù)據(jù)庫 2.1 數(shù)據(jù)庫連接 2.2 數(shù)據(jù)庫與NotORM 2.3 數(shù)據(jù)庫使用和查詢 2.4 數(shù)據(jù)庫分庫分表策略 2.5 連接多個數(shù)據(jù)庫 2.6 打印和保存SQL語句 2.7 定制你的Model基類
          三、高級專題 3.1 接口參數(shù) 3.2 配置 3.3 日志 3.4 緩存 3.5 過濾器(接口簽名) 3.6 COOKIE 3.7 加密 3.8 國際化 3.9 CURL請求 3.10 工具和雜項 3.11 DI服務(wù)匯總 3.12 擴展類庫 3.13 SDK包的使用 3.14 腳本命令 3.15 MQ隊列 3.16 錯誤處理

          2020視頻教程

          B站首發(fā),第一課~第十一課,配套有每節(jié)課的視頻知識點大綱。

          http://docs.phalapi.net/#/v2.0/video_1


          視頻課程:

              PhalApi 2020視頻教程        第一課 B站首發(fā),2020視頻教程開講啦!        第二課 視頻教程 - 下載和安裝        第三課 視頻教程 - Hello World        第四課 視頻教程 - 如何請求接口服務(wù)        第五課 視頻教程 - 接口響應(yīng)與在線調(diào)試        第六課 視頻教程 - Api接口層        第七課 視頻教程 - Domain領(lǐng)域業(yè)務(wù)層與ADM模式解說        第八課 視頻教程 - Model數(shù)據(jù)層與數(shù)據(jù)庫連接        第九課 視頻教程 - 測試驅(qū)動開發(fā)與PHPUnit        第十課 視頻教程 - 自動加載和PSR-4        第十一課 視頻教程 - 接口文檔        視頻教程 - 十分鐘體驗PhalApi Pro,讓PHP接口開發(fā)更有趣!        視頻教程 - 茶店應(yīng)用實戰(zhàn)

          相關(guān)書籍

          電子書:《初識PhalApi:探索接口服務(wù)開發(fā)的技藝》

          作者:黃禪宗

          圖靈社區(qū)鏈接:https://www.ituring.com.cn/book/2405

          大綱:

          獻詞前言第一部分 探索第1章 遇見PhalApi第2章 基礎(chǔ)入門第3章 高級主題第4章 不只是編碼第二部分 項目案例第5章 全新的創(chuàng)業(yè)項目第6章 重寫歷史遺留項目第7章 一個極致的項目第三部分 再進一步第8章 PhalApi完美詮釋第9章 如何有效設(shè)計接口框架第10章 開源這條路附錄A 接口服務(wù)文檔模板致謝


          電子書:《良質(zhì)!PHP企業(yè)級系統(tǒng)開發(fā)》

          作者:黃禪宗

          圖靈社區(qū)鏈接:https://www.ituring.com.cn/book/2664

          大綱:

          推薦序前言獻辭第一部分 重新定義項目開發(fā)第 1 章 軟件開發(fā)本質(zhì)論第 2 章 選擇高起點第 3 章 向世界發(fā)布你的代碼第二部分 PHP高級編程第 4 章 回歸原生態(tài)第 5 章 PHPUnit單元測試新解第三部分 PHP企業(yè)級系統(tǒng)開發(fā)第 6 章 核心基礎(chǔ)模塊設(shè)計第 7 章 大型網(wǎng)站開發(fā)范式第 8 章 高可用接口服務(wù)系統(tǒng)第 9 章 極致的管理后臺系統(tǒng)第 10 章 深藏不露的計劃任務(wù)系統(tǒng)第四部分 追求卓越第 11 章 如何成為明星員工第 12 章 贏在角色轉(zhuǎn)換致謝


          子項目

          如果對PhalApi開源框架的內(nèi)部實現(xiàn)、源代碼和技術(shù)架構(gòu)感興趣,可以查看以下子項目。

          • phalapi/kernal框架內(nèi)核

          • phalapi/notorm數(shù)據(jù)庫包


          PhalApi 2.x 版本的系統(tǒng)架構(gòu)如下: 

          PhalApi composer 擴展

          • phalapi/authAuth權(quán)限擴展

          • phalapi/cliCLI擴展類庫

          • phalapi/fast-routeFastRoute快速路由

          • phalapi-aliyun-ossPhalApi-OSS阿里云OSS包

          • phalapi/PHPMailer基于PHPMailer的郵件發(fā)送

          • phalapi/qiniu七牛云存儲接口調(diào)用

          • phalapi/qrcodePhalApi 二維碼擴展

          • phalapi/pinyinPhalApi 2.x 拼音擴展

          • phalapi/jwt基于PhalApi2的JWT拓展

          • chenall/phalapi-weixin微信擴展

          • phalapi/wechatmini微信小程序擴展

          • phalapi/ding-com-bot釘釘企業(yè)內(nèi)部webhook機器人擴展

          • phalapi-pay支持微信支付和支付寶支付

          溫馨提示:以上擴展需要先通過composer安裝再使用。更多擴展類庫的使用和開發(fā),請參考文檔:PhalApi框架擴展類庫:http://docs.phalapi.net/#/v2.0/library。

          PhalApi應(yīng)用插件

          • 運營平臺插件

          • 應(yīng)用用戶插件

          • 加密解密插件

          • 支付寶插件

          • 茶店微信小程序應(yīng)用

          • 在線接口文檔主題包

          溫馨提示:應(yīng)用插件和composer擴展的區(qū)別在于,應(yīng)用插件顆粒度更大,功能更具體,可能不僅有數(shù)據(jù)庫、接口、界面、還可能配合其他終端,并且不受composer的規(guī)范約束,是PhalApi自主發(fā)明和設(shè)計的開發(fā)方式。更多請參考:第三方應(yīng)用插件開發(fā)教程:http://docs.phalapi.net/#/v2.0/how-to-dev-plugin。

          基于PhalApi開發(fā)的技術(shù)產(chǎn)品

          以下產(chǎn)品均使用了PhalApi開源框架,并為官方自主研發(fā)的產(chǎn)品,歡迎個人/團隊/企業(yè)使用。


          接口大師-即刻搭建您的接口開放平臺(原名:PhalApi專業(yè)版)

          產(chǎn)品官網(wǎng):http://pro.phalapi.net/



          果創(chuàng)云-后端低代碼開發(fā)平臺

          產(chǎn)品官網(wǎng):http://yesapi.cn/


          YesDev協(xié)作云-在線協(xié)作你的全部項目

          產(chǎn)品官網(wǎng):https://www.yesdev.cn/

          PhalApi 2.x 版本完美詮釋

          2.x 版本系統(tǒng)架構(gòu)

          主要分為三層:

          • phalapi/phalapi  項目應(yīng)用層,可使用phalapi/phalapi搭建微服務(wù)、接口系統(tǒng)、RESTful、WebServices等。

          • 擴展類庫  擴展類庫是指可選的、可重用的組件或類庫,可以直接集成使用,由廣大開發(fā)人員維護分享,對應(yīng)原來的PhalApi-Library項目。

          • 核心框架  分別兩大部分,PhalApi核心部分kernal,以及優(yōu)化后的notorm。


          其中,各自的composer和github項目分別是:

          項目composergithub
          phalapi/phalapiphalapi/phalapiphalapi/phalapi
          擴展類庫由廣大開發(fā)人員共同維護、分享,composer建議統(tǒng)一注冊到phalapi。由廣大開發(fā)人員共同維護、分享,源代碼可維護在開發(fā)者各自的Github倉庫。
          核心框架phalapi/kernalphalapi/kernal


          框架核心部分UML靜態(tài)結(jié)構(gòu)圖

          PhalApi 2.x 版本的核心框架部分的UML靜態(tài)結(jié)構(gòu)圖,高清版如下所示: 


          首先,綠色部分的PhalApi\PhalApi類是整個接口系統(tǒng)的訪問入口,也就是項目應(yīng)用系統(tǒng)、客戶端使用的關(guān)鍵所在。相關(guān)的調(diào)用代碼,可以參考統(tǒng)一入口文件的實現(xiàn)代碼片段。 

          $pai = new \PhalApi\PhalApi();$pai->response()->output();


          只需要兩行代碼,便可完成對接口服務(wù)的請求響應(yīng)。


          其次,是黃色部分的Api、Domain和Model這三層,也就是我們常說的ADM分層架構(gòu)。這部分,需要開發(fā)人員關(guān)注,因為這也是具體項目開發(fā)需要自己實現(xiàn)的部分。


          最后,是紅色部分的DI依賴注入,也是整個框架的核心所在。不僅在核心框架中使用頻率最高,乃至在項目應(yīng)用中也會經(jīng)常被用到。


          核心執(zhí)行流程時序圖

          PhalApi 2.x 版本的核心執(zhí)行流程時序圖,與1.x 版本基本一致,可以看出,不管技術(shù)如何升級,PhalApi的最初的核心時序流程仍保持著活力。唯一變化的是各個類名。 

          社區(qū)溝通

          派框架-PhalApi交流群-QQ群(1165人)

          群號:421032344


          派框架-PhalApi交流群2-QQ群(830人)

          群號:459352221


          PhalApi技術(shù)交流群-微信群(83人)

          添加微信號:dogstarhuang 進群

          代碼倉庫

          Gitee碼云 - PhalApi開源接口框架(1.7k Star)

          代碼鏈接:https://gitee.com/dogstar/PhalApi


          Github - PhalApi開源接口框架(1.4 Star)

          代碼鏈接:https://github.com/phalapi/phalapi


          版本更新

          2021年7月發(fā)布更新了 PhalApi 2.17.2 版本。


          PhalApi 2.17.2 版本

          [BUG修復(fù)]

              1、SQL記錄,只提取部分必要的參數(shù),避免全部記錄,以及避免記錄密碼等敏感信息到日志文件

              2、翻譯和DataApi參數(shù)說明補充

              3、DataModel調(diào)用不存在方法時的異常提示信息,去掉多余的美元符號

              4、在線接口文檔模板判斷調(diào)整,避免出現(xiàn)warning


          更多歷史版本更新日記,請查看:

          http://docs.phalapi.net/#/v2.0/changelog

          瀏覽 171
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色五月婷婷导航 | 免费人成视频网站 | 女人18毛片90分钟 | 俺去也天天幹 | 狠狠操人妻 |