PhalApi开源接口框架读音:派框架,官网:https://www./ PhalApi是一个PHP轻量级开源接口框架,致力于快速开发接口服务。支持HTTP/SOAP/RPC等协议,可用于搭建接口/微服务/RESTful接口/Web Services。承诺永久免费,可用于商业用途。 它支持自动生成接口文档、自动进行参数校验、自动生成单元测试代码、自动拥有CURD数据接口、自动安装程序,让接口开发更简单、更高效、更专业。 PhalApi官网截图: 在线示例使用PhalApi开源接口框架,能快速开发编写你的API接口,并能自动生成在线接口文档。 在线示例:
PhalApi会根据你编写的接口的参数配置和代码注释,自动实时生成在线接口文档。接口列表页效果类似如下: PhalApi还支持在线接口测试、请求示例说明、生成离线版HTML接口文档、实时更新。接口文档详情页效果类似如下: 快速安装composer一键安装使用composer创建项目的命令,可实现一键安装。 $ composer create-project phalapi/phalapi
手动下载安装或者,也可以进行手动安装。将此Git项目代码下载解压后,进行可选的composer更新,即:
部署Nginx配置 如果使用的是Nginx,可参考以下配置。 server {
listen 80;
server_name dev.;
# 将根目录设置到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。
数据库配置如何使用的是MySQL数据库,参考修改./config/dbs.php数据库配置。
最后,需要给runtime目录添加写入权限。 运行和使用调用接口在PhalApi,你可以通过service参数(短名字是s参数)指定需要调用的接口服务。例如,访问默认接口服务。 http://dev./?s=App.Site.Index 接口请求后结果输出类似如下:
对应执行的PHP代码在./src/app/Api/Site.php文件,源码片段如下: <?php
namespace App\Api;
use PhalApi\Api;
/**
* 默认接口服务类
* @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' => '用户名'),
),
);
}
/**
* 默认接口服务
* @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'],
);
}
} 运行效果,截图如下: 自动生成的接口文档详情页局部截图如下: 翻译修改./public/init.php文件,可设置当前语言。
一张图告诉你如何使用PhalApi 2.xPhalApi开发文档专为PHPer准备的优雅而详细的开发文档,基本都能在文档找到你要的答案,请看:PhalApi 2.x 开发文档,http://docs./#/v2.0/。 文档使用markdown编写,文档页面截图如下: 开发文档大纲: PhalApi 2.x 开发文档
前言
前言
如何升级PhalApi?
一、快速开发
1.1下载与安装
1.2 运行Hello World
1.3 如何请求接口服务
1.4 接口响应与在线调试
1.5 Api接口层
1.6 DataApi通用数据接口
1.7 Domain领域层与ADM模式
1.8 Model数据层与数据库操作
1.9 DataModel数据基类
1.10 单元测试
1.11 自动加载和PSR-4
1.12 接口文档
1.13 初始化
二、数据库
2.1 数据库连接
2.2 数据库与NotORM
2.3 数据库使用和查询
2.4 数据库分库分表策略
2.5 连接多个数据库
2.6 打印和保存SQL语句
2.7 定制你的Model基类
三、高级专题
3.1 接口参数
3.2 配置
3.3 日志
3.4 缓存
3.5 过滤器(接口签名)
3.6 COOKIE
3.7 加密
3.8 国际化
3.9 CURL请求
3.10 工具和杂项
3.11 DI服务汇总
3.12 扩展类库
3.13 SDK包的使用
3.14 脚本命令
3.15 MQ队列
3.16 错误处理 2020视频教程B站首发,第一课~第十一课,配套有每节课的视频知识点大纲。 http://docs./#/v2.0/video_1 视频课程:
相关书籍电子书:《初识PhalApi:探索接口服务开发的技艺》 作者:黄禅宗 图灵社区链接:https://www./book/2405 大纲: 献词
前言
第一部分 探索
第1章 遇见PhalApi
第2章 基础入门
第3章 高级主题
第4章 不只是编码
第二部分 项目案例
第5章 全新的创业项目
第6章 重写历史遗留项目
第7章 一个极致的项目
第三部分 再进一步
第8章 PhalApi完美诠释
第9章 如何有效设计接口框架
第10章 开源这条路
附录A 接口服务文档模板
致谢 电子书:《良质!PHP企业级系统开发》 作者:黄禅宗 图灵社区链接:https://www./book/2664 大纲:
子项目如果对PhalApi开源框架的内部实现、源代码和技术架构感兴趣,可以查看以下子项目。
PhalApi 2.x 版本的系统架构如下: PhalApi composer 扩展
PhalApi应用插件
基于PhalApi开发的技术产品以下产品均使用了PhalApi开源框架,并为官方自主研发的产品,欢迎个人/团队/企业使用。 接口大师-即刻搭建您的接口开放平台(原名:PhalApi专业版) 产品官网:http://pro./ 果创云-后端低代码开发平台 产品官网:http:/// YesDev协作云-在线协作你的全部项目 产品官网:https://www./ PhalApi 2.x 版本完美诠释2.x 版本系统架构 主要分为三层:
其中,各自的composer和github项目分别是:
框架核心部分UML静态结构图 PhalApi 2.x 版本的核心框架部分的UML静态结构图,高清版如下所示: 首先,绿色部分的PhalApi\PhalApi类是整个接口系统的访问入口,也就是项目应用系统、客户端使用的关键所在。相关的调用代码,可以参考统一入口文件的实现代码片段。 $pai = new \PhalApi\PhalApi();
$pai->response()->output(); 只需要两行代码,便可完成对接口服务的请求响应。 其次,是黄色部分的Api、Domain和Model这三层,也就是我们常说的ADM分层架构。这部分,需要开发人员关注,因为这也是具体项目开发需要自己实现的部分。 最后,是红色部分的DI依赖注入,也是整个框架的核心所在。不仅在核心框架中使用频率最高,乃至在项目应用中也会经常被用到。 核心执行流程时序图 PhalApi 2.x 版本的核心执行流程时序图,与1.x 版本基本一致,可以看出,不管技术如何升级,PhalApi的最初的核心时序流程仍保持着活力。唯一变化的是各个类名。 代码仓库Gitee码云 - PhalApi开源接口框架(1.7k Star) 代码链接:https:///dogstar/PhalApi Github - PhalApi开源接口框架(1.4 Star) 代码链接:https://github.com/phalapi/phalapi 版本更新2021年7月发布更新了 PhalApi 2.17.2 版本。 PhalApi 2.17.2 版本 [BUG修复] 1、SQL记录,只提取部分必要的参数,避免全部记录,以及避免记录密码等敏感信息到日志文件 2、翻译和DataApi参数说明补充 3、DataModel调用不存在方法时的异常提示信息,去掉多余的美元符号 4、在线接口文档模板判断调整,避免出现warning 更多历史版本更新日记,请查看: http://docs./#/v2.0/changelog |
|
来自: 启云_9137 > 《计算机及软件应用》