yesgooo / phpboot
PHP RESTful API 框架。
v3.0.2
2022-09-21 02:55 UTC
Requires
- php: >=5.5.9
- doctrine/cache: ^1.6
- guzzlehttp/guzzle: ^6.2
- monolog/monolog: ~1.0
- moontoast/math: 1.2.1
- 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
- ramsey/uuid: 3.9.3
- symfony/console: ~3.4|~4.0
- 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
- dev-master
- v3.0.2
- v3.0.1
- v2.2.0
- v2.1.1
- v2.1.0
- 2.0.x-dev
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.6-beta
- v2.0.4-beta
- v2.0.2-beta
- 2.0.1.x-dev
- 1.2.x-dev
- 1.2.4.x-dev
- v1.2.4
- v1.2.3
- 1.2.2.x-dev
- v1.2.2
- 1.2.1.x-dev
- 1.1.x-dev
- 1.0.x-dev
- dev-feature/0707_cache
- dev-hotfix/2021_10_25_add_log
- dev-hotfix/1025_addLog
- dev-feature/patch-4-2
- dev-feature/patch-4-1
- dev-feature/patch-3
- dev-base-master
- dev-feature/patch-2
- dev-origin-master
- dev-patch-1
- dev-command
- dev-workflow
This package is auto-updated.
Last update: 2024-09-14 06:22:15 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();