storinka/invoke


README

Invoke

用于构建快速和现代网络API的PHP库。

安装

该库仍在开发中。

composer require storinka/invoke:^2 storinka/invoke-http:^2

基本示例

  1. 创建 index.php
use Invoke\Invoke;

function add(float $a, float $b): float
{
    return $a + $b;
}

Invoke::create([
    "add"
])->serve();
  1. 运行服务器
php -S localhost:8000 index.php 
  1. 发送请求
curl 'localhost:8000/add?a=2&b=2'

# { "result": 4 }

复杂示例

  1. 创建类型
use Invoke\Data;

class UserResult extends Data
{
    public int $id;
    
    public string $name;
}
  1. 创建获取用户列表的方法
use Invoke\Method;

class GetUsers extends Method
{
    protected function handle(int $page, int $perPage): array
    {
        $usersFromDB = getUsersFromDb($page, $perPage);
        
        return UserResult::many($usersFromDB);
    }
}
  1. 设置Invoke
use Invoke\Invoke;

Invoke::create([
    "getUsers" => GetUsers::class
])->serve();
  1. 运行服务器并尝试调用
curl 'localhost:8000/getUsers?page=1&perPage=10'

# { "result": [ ... ] }