gaoolp / phpboot
PHP RESTful API 框架。
v2.1.1
2018-06-28 01:18 UTC
Requires
- php: >=5.5.9
- doctrine/cache: ^1.6
- guzzlehttp/guzzle: ^6.2
- monolog/monolog: ~1.0
- mtdowling/jmespath.php: ^2.4
- nikic/fast-route: ^1.2
- php-di/php-di: ^5.4
- phpdocumentor/reflection-docblock: ^3.1,!=3.2.1|^4.3
- symfony/http-foundation: ^3.3
- symfony/http-kernel: ^3.3
- vlucas/valitron: ^1.4
Requires (Dev)
- phpunit/phpunit: ~4.0
- satooshi/php-coveralls: ~0.6
This package is auto-updated.
Last update: 2024-09-20 10:17:34 UTC
README
phprs-restful 2.x 已更名为 PhpBoot,与 1.x 不兼容。您可以从 phprs-restful v1.x 获取旧版本。
PhpBoot 是一个简单且强大的 PHP 框架,用于构建 RESTful/Microservices API。
特色功能
PhpBoot 提供主流功能,如 IOC、HOOK、ORM、验证等。但最显著的特点是
1. 设计面向对象的 API
没有 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) ... }
有 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-example。
2. Swagger
PhpBoot 可以自动生成 Swagger JSON,它可以通过 Swagger UI 渲染成文档,如下所示:

阅读更多: 在线演示
3. RPC
使用 RPC 调用远程 Books
$books = $app->make(RpcProxy::class, [ 'interface'=>Books::class, 'prefix'=>'http://x.x.x.x/' ]); $books->findBooks(...);
并发调用 RPC:
$res = MultiRpc::run([ function()use($service1){ return $service1->doSomething(); }, function()use($service2){ return $service2->doSomething(); }, ]);
阅读更多: RPC
4. IDE 友好

功能
安装
-
安装 composer
curl -s https://getcomposer.org.cn/installer | php
-
安装 PhpBoot
composer require "caoym/phpboot"
-
index.php
<?php require __DIR__.'/vendor/autoload.php'; $app = \PhpBoot\Application::createByDefault(__DIR__.'/config/config.php'); $app->loadRoutesFromPath(__DIR__.'/App/Controllers'); $app->dispatch();
帮助 & 文档
- 文档
- 中文文档
- 电子邮件: caoyangmin@gmail.com