Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ phpboot Public

β˜• πŸš€ tiny & fast PHP framework for building Microservices/RESTful APIs, with useful features: IOC, Hook, ORM, RPC, Swagger, Annotation, Parameters binding, Validation, etc.

License

Notifications You must be signed in to change notification settings

caoym/phpboot

Repository files navigation

PhpBoot

GitHub license Package version Documentation Status Build Status Scrutinizer Code Quality Code Coverage

phprs-restful 2.x is renamed to PhpBoot, and incompatible with 1.x. You can get the old version from phprs-restful v1.x

ζŸ₯ηœ‹δΈ­ζ–‡θ―΄ζ˜Ž

PhpBoot is an easy and powerful PHP framework for building RESTful/Microservices APIs.

Specialities

PhpBoot provides mainstream features, such as IOC, HOOK, ORM, Validation, etc. But the most striking features are:

1. Designing object-oriented APIs

WITHOUT 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)
 ...
}

WITH 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;
 }
}

Read more: phpboot-example。

2. Swagger

PhpBoot can automatically generate Swagger JSON,which can be rendered as document by Swagger UI like this:

Read more: Online Demo

3. RPC

Call the remote Books with RPC:

$books = $app->make(RpcProxy::class, [
 'interface'=>Books::class, 
 'prefix'=>'http://x.x.x.x/'
 ]);
 
$books->findBooks(...);

Concurrent call RPC:

$res = MultiRpc::run([
 function()use($service1){
 return $service1->doSomething();
 },
 function()use($service2){
 return $service2->doSomething();
 },
]);

Read more: RPC

4. IDE friendly

Features

Installation

  1. Install composer

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

    composer require "caoym/phpboot"
    
  3. index.php

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

Help & Documentation

About

β˜• πŸš€ tiny & fast PHP framework for building Microservices/RESTful APIs, with useful features: IOC, Hook, ORM, RPC, Swagger, Annotation, Parameters binding, Validation, etc.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /