PhpBoot

快速开发 RESTful 接口的框架
授权协议 MIT
开发语言 PHP
所属分类 Web应用开发、 REST/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 下的使用:

主要特性

安装和配置

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

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

2. 安装 PhpBoot

composer require "caoym/phpboot"

3. index.php 加载 PhpBoot

<?php
require __DIR__.'/vendor/autoload.php';

$app = \PhpBoot\Application::createByDefault(__DIR__.'/config/config.php');
$app->loadRoutesFromPath(__DIR__.'/App/Controllers');
$app->dispatch();

帮助和文档

  • PhpBoot 是一款为快速开发 RESTful API 而设计的PHP框架(更多内容请前往 PbpBoot Github)。本文为你演示如何使用 PhpBoot 快速开发一套 RESTful 风格的接口。 关于 RESTful 当前 RESTful 已经不是新鲜的名词了,抛开抽象的定义,我认为一个通俗的解释可以是:按文件系统的方式去设计接口,即把接口提供的功能,当做是对“目录”的“操作”。比如一

 相关资料
  • 什么是 REST REST 全称是 Representational State Transfer,翻译成中文是『表现层状态转移』,估计读者看到这个词也是云里雾里的,我当初也是!这里,我们先不纠结这个词到底是什么意思。事实上,REST 是一种 Web 架构风格,它有六条准则,满足下面六条准则的 Web 架构可以说是 Restuful 的。 客户端-服务器(Client-Server) 服务器和客户

  • 本文向大家介绍在windows下快速搭建web.py开发框架方法,包括了在windows下快速搭建web.py开发框架方法的使用技巧和注意事项,需要的朋友参考一下   用Python进行web开发的话有很多框架供选择,比如最出名的Django,tornado等,除了这些框架之外,有一个轻量级的框架使用起来也是非常方便和顺手,就是web.py。它由一名黑客所创建,但是不幸的是这位创建者于2013年自

  • 一、Debug模式开关 二、初始化SDK 三、登录与注销 四、打开聊窗 五、轨迹的集成

  • 一、Debug模式开关 二、初始化SDK 三、登录与注销 四、打开聊窗 五、轨迹的集成 六、权限适配

  • 这部分文档包含了 Requests 所有的接口。对于 Requests 依赖的外部库部分,我们在这里介绍最重要的部分,并提供了规范文档的链接。 主要接口 Requests 所有的功能都可以通过以下 7 个方法访问。它们全部都会返回一个 对象的实例。 requests.request(method, url, **kwargs) Constructs and sends a . 参数: method

  • 本指南将解说如何构建并测试用于开发的 Ceph 。 开发 run-make-check.sh 脚本会安装 Ceph 依赖,一切都在调试模式下编译、并进行一系列测试,以验证结果正如所需。 $ ./run-make-check.sh 开发集群的部署 Ceph 包含一个名为 vstart.sh 的脚本(还有开发集群的部署),可以让开发者们在开发系统上用最简部署快速地测试代码。编译成功后,用下列命令开始部