讀音:派框架,官網:https://www.phalapi.net/
專為PHPer準備的優雅而詳細的開發文檔,基本都能在文檔找到你要的答案,請看:PhalApi 2.x 開發文檔。
使用composer創建項目的命令,可實現一鍵安裝。
$ composer create-project phalapi/phalapi溫馨提示:關於composer的使用,請參考Composer 中文網/ Packagist 中國全量鏡像。
或者,也可以進行手動安裝。將此Git項目代碼下載解壓後,進行可選的composer更新,即:
$ composer update如果使用的是Nginx,可參考以下配置。
server {
listen 80 ;
server_name dev.phalapi.net;
# 将根目录设置到public目录
root /path/to/phalapi/public;
charset utf-8;
location / {
index index.php;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$ ;
# 根据当前环境,选择合适的通讯方式
# 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 ;
}
}配置時需要將網站根目錄設置到public目錄,配置保存後重啟nginx。
溫馨提示:推薦將訪問根路徑指向/path/to/phalapi/public。
如何使用的是MySQL數據庫,參考修改./config/dbs.php數據庫配置。
return array (
/**
* DB数据库服务器集群 / database cluster
*/
' servers ' => array (
' db_master ' => array ( // 服务器标记 / database identify
' type ' => ' mysql ' , // 数据库类型,暂时只支持:mysql, sqlserver / database type
' host ' => ' 127.0.0.1 ' , // 数据库域名 / database host
' name ' => ' phalapi ' , // 数据库名字 / database name
' user ' => ' root ' , // 数据库用户名 / database user
' password ' => '' , // 数据库密码 / database password
' port ' => 3306 , // 数据库端口 / database port
' charset ' => ' UTF8 ' , // 数据库字符集 / database charset
' pdo_attr_string ' => false , // 数据库查询结果统一使用字符串,true是,false否
' driver_options ' => array ( // PDO初始化时的连接选项配置
// 若需要更多配置,请参考官方文档:https://www.php.net/manual/zh/pdo.constants.php
),
),
),
// 更多代码省略……
);最後,需要給runtime目錄添加寫入權限。更多安裝說明請參考文檔下載與安裝。
在PhalApi,你可以通過service參數(短名字是s參數)指定需要調用的接口服務。例如,訪問默認接口服務。
http://dev.phalapi.net/?s=App.Site.Index
接口請求後結果輸出類似如下:
{
"ret": 200,
"data": {
"title": "Hello PhalApi",
"version": "2.4.2",
"time": 1501079142
},
"msg": ""
}
對應執行的PHP代碼在./src/app/Api/Site.php文件,源碼片段如下:
<?php
namespace App Api ;
use PhalApi Api ;
/**
* 默认接口服务类
* @author: dogstar <[email protected]> 2014-10-04
*/
class Site extends Api {
public function getRules () {
return array (
' index ' => array (
' username ' => array ( ' name ' => ' username ' , ' default ' => ' PhalApi ' , ' desc ' => '用户名' ),
),
);
}
/**
* 默认接口服务
* @desc 默认接口服务,当未指定接口服务时执行此接口服务
* @return string title 标题
* @return string content 内容
* @return string version 版本,格式:X.X.X
* @return int time 当前时间戳
* @exception 400 非法请求,参数传递错误
*/
public function index () {
return array (
' title ' => ' Hello ' . $ this -> username ,
' version ' => PHALAPI_VERSION ,
' time ' => $ _SERVER [ ' REQUEST_TIME ' ],
);
}
}運行效果,截圖如下:

PhalApi會根據你編寫的接口的參數配置和代碼註釋,自動實時生成在線接口文檔。在線接口文檔鏈接為:
瀏覽效果類似如下:
接口文檔詳情頁效果類似如下:
支持在線接口測試、請求示例說明、生成離線版HTML接口文檔、實時更新。
./phalapi
├── README.md # 简介
├── bin # 脚本目录
├── config # 配置目录
│ ├── app.php # 应用配置
│ ├── dbs.php # 数据库配置
│ ├── di.php # 依赖服务配置
│ └── sys.php #系统配置
├── data # 数据库
│ └── phalapi.sql # 数据库安装时的文件
├── language # 翻译包
├── public # 对外访问的目录
│ ├── docs # 离线生成的HTML接口文档
│ ├── docs.php # 在线版接口文档访问入口
│ ├── index.php
│ ├── init.php # 全局初始化文件
│ ├── static # 静态资源
│ ├── uploads # 上传目录(需要有写入权限)
│ └── phalapi_logo.png # logo图片
├── runtime # 运行目录
│ ├── cache # 文件缓存
│ └── log # 文件日志
├── sdk # SDK包
├── src # 项目源代码,非常重要
│ ├── app # 接口源代码(遵循ADM模式)
│ │ ├── Api # 放置接口源代码,相当于控制器层
│ │ ├── Common # 公共代码目录,放置工具等
│ │ ├── Domain # 领域业务层,负责业务逻辑和处理
│ │ ├── functions.php # 公共函数库
│ │ └── Model # 数据源层,负责数据持久化存储及操作
│ └── view # 页面模板目录(如接口文档)
├── tests # 单元测试
└── vendor # composer包,不需要手动修改,通过composer install/update可进行安装和更新修改./public/init.php文件,可設置當前語言。
// 翻译语言包设定-简体中文
PhalApi SL ( ' zh_cn ' );
// Setting language to English
PhalApi SL ( ' en ' );
溫馨提示:以上擴展需要先通過composer安裝再使用。更多擴展類庫的使用和開發,請參考文檔:PhalApi框架擴展類庫。
溫馨提示:應用插件和composer擴展的區別在於,應用插件顆粒度更大,功能更具體,可能不僅有數據庫、接口、界面、還可能配合其他終端,並且不受composer的規範約束,是PhalApi自主發明和設計的開發方式。更多請參考:第三方應用插件開發教程。
溫馨提示:以上產品均使用了PhalApi開源框架,並為官方自主研發的產品,歡迎個人/團隊/企業使用。
如發現問題,或者任何問題,歡迎提交Issue到這裡。
如果喜歡,請幫忙在Github或碼雲給個Star,也可以對PhalApi進行捐贈哦^_^。
Apache 2.0,Apache Licence是著名的非盈利開源組織Apache採用的協議。該協議和BSD類似,同樣鼓勵代碼共享和尊重原作者的著作權,同樣允許代碼修改,再發布(作為開源或商業軟件)。
由廣州果創網絡科技有限公司長期維護升級。