PhpBoot- 快速开发 RESTful 接口的框架

网友投稿 1268 2022-10-22

PhpBoot- 快速开发 RESTful 接口的框架

PhpBoot- 快速开发 RESTful 接口的框架

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)    {        ... $total = ...        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 下的使用:

主要特性

基于Annotation的路由定义接口参数双向绑定Validation依赖注入DBORM自动文档和接口工具分布式支持(RPC)Hook工作流引擎(开发中…)

安装和配置

1. 安装 composer (已安装可忽略)

curl -s http://getcomposer.org/installer | php

2. 安装 PhpBoot

composer require "caoym/phpboot"

3. index.php 加载 PhpBoot

loadRoutesFromPath(__DIR__.'/App/Controllers');$app->dispatch();

帮助和文档

在线文档本人邮箱 caoyangmin@gmail.com

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring中使用腾讯云发送短信验证码的实现示例
下一篇:luogu2916 [USACO08NOV]
相关文章

 发表评论

暂时没有评论,来抢沙发吧~