PhpBoot: 一款用于快速开发 RESTful 接口的PHP框架
来源:互联网 发布:非农数据什么意思 编辑:程序博客网 时间:2024/05/26 09:56
PhpBoot
PhpBoot 是为快速开发 RESTful API 设计的PHP框架。它可以帮助开发者更聚焦在业务本身, 而将原来开发中不得不做, 但又重复枯燥的事情丢给框架, 比如编写接口文档、参数校验和远程调用代码等。
特色
PhpBoot 框架提供许多主流的特性, 如ORM、依赖注入等。 这些特性都经过精心设计和选择(有些是第三方开源代码,如 PHP-DI),但和其他框架相比较, PhpBoot 最显著的特色是:
1. 以面向对象的方式编写接口
你肯定看到过这样的代码:
// **不用** PhpBoot 的代码class BookController{ public function findBooks(Request $request) { $name = $request->get('name'); $offset = $request->get('offset', 0); $limit = $request->get('limit', 10); ... return new Response(['total'=>$total, 'data'=>$books]); } public function createBook(Request $request) ...}
很多主流框架都需要用类似代码编写接口。但这种代码的一个问题是, 方法的输入输出隐藏在实现里, 这不是通常我们提倡的编码方式。如果你对代码要求更高, 你可能还会实现一层 Service 接口, 而在 Controller 里只是简单的去调用 Service 接口。而使用 PhpBoot, 你可以用更自然的方式去定义和实现接口。上面的例子, 在 PhpBoot 框架中实现是这样的:
/** * @path /books/ */class Books{ /** * @route GET / * @return Book[] */ public function findBooks($name, &$total=null, $offset=0, $limit=10) { ... return $books; } /** * @route POST / * @param Book $book {@bind request.request} bind $book with http body * @return string id of created book */ public function createBook(Book $book) { $id = ... return $id; }}
上面两份代码执行的效果是一样的。可以看到 PhpBoot 编写的代码更符合面向对象编程的原则, 以上代码完整版本请见phpboot-example。
2. 轻松支持 Swagger
Swagger是目前最流行的接口文档框架。虽然很多框架都可以通过扩展支持Swagger, 但一般不是需要编写很多额外的注释, 就是只能导出基本的路由信息, 而不能导出详细的输入输出参数。而 PhpBoot 可以在不增加额外编码负担的情况下, 轻松去完成上述任务,下图为findBooks对应的文档。更多内容请见文档和在线 Demo。
3. 简单易用的分布式支持
使用 PhpBoot 可以很简单的构建分布式应用。通过如下代码, 即可轻松远程访问上面示例中的 Books 接口:
$books = $app->make(RpcProxy::class, [ 'interface'=>Books::class, 'prefix'=>'http://x.x.x.x/' ]); $books->findBooks(...);
同时还可以方便的发起并发请求, 如:
$res = MultiRpc::run([ function()use($service1){ return $service1->doSomething(); }, function()use($service2){ return $service2->doSomething(); },]);
更多内容请查看文档
4. IDE 友好
IDE 的代码提示功能可以让开发者轻松不少, 但很多框架在这方面做的并不好, 你必须看文档或者代码, 才能知道某个功能的用法。PhpBoot 在一开始就非常注重框架的 IDE 友好性, 尽可能让框架保持准确的代码提示。比如下图是 DB 库在 PhpStorm 下的使用:
可以看到, IDE 的提示是符合 SQL 语法规则的, 并不是简单罗列所有 SQL 指令。
主要特性
- 基于Annotation的路由定义
- 接口参数双向绑定
- Validation
- 依赖注入
- DB
- ORM
- 自动文档和接口工具
- 分布式支持(RPC)
- Hook
- 工作流引擎(开发中...)
安装和配置
安装 composer (已安装可忽略)
curl -s http://getcomposer.org/installer | php
安装 PhpBoot
composer require "caoym/phpboot"
index.php 加载 PhpBoot
<?phprequire __DIR__.'/vendor/autoload.php';$app = \PhpBoot\Application::createByDefault(__DIR__.'/config/config.php');$app->loadRoutesFromPath(__DIR__.'/App/Controllers');$app->dispatch();
帮助和文档
- 在线文档
- QQ 交流群:185193529
- 本人邮箱 caoyangmin@gmail.com
- PhpBoot: 一款用于快速开发 RESTful 接口的PHP框架
- 【PHPRS】一款小巧精悍的PHP RESTful开源框架
- PHP如何调用Delphi开发的DataSnap/Restful接口服务
- RESTClient一款优秀的Java RESTful 接口测试工具
- 三分钟学会API接口设计 之 Compass 的Restful API 快速入门指南 -- 使用Flask框架
- 推荐一款国人开发的 MVC快速开发框架 Bee Framework
- Workerman 一款纯PHP开发的开源高性能的PHP socket 服务器框架。
- Workerman 一款纯PHP开发的开源高性能的PHP socket 服务器框架。
- 已有mvc框架下基于jersey的restful接口开发
- PHP编写RESTful接口
- PHP编写RESTful接口
- php框架SlimPHP --- RESTful Web API 开发框架
- RESTFUL及Yii框架下开发RESTFUL的细节
- WIN7上快速架设一个可以用于Yii2开发调试的PHP运行环境 [ 2.0 版本 ]
- RESTFUL接口开发
- Springboot快速构建restful接口
- PHP快速开发框架EaglePHP V2.7整合微信5.0最全API接口
- Swagger 一款RESTFUL接口的文档在线自动生成+功能测试功能软件
- 网易2018校招编程题集合3
- POJ
- miscellaneous_7
- 前端面向对象
- python相关函数
- PhpBoot: 一款用于快速开发 RESTful 接口的PHP框架
- 功夫小子实践开发-游戏设置功能的实现
- 常用SQL语句总结
- 挖掘微信、酷狗bug
- docker的数据卷管理方法
- maven常见开发配置spring,hibernate,structs,jdbc,log4j,mybatis
- 如何用程序确认当前系统的存储模式(大端模式、小端模式)
- 页面关闭事件 beforeunload onbeforeunload
- react html 控件 事件