basemaster/wellrested

用于简单的PHP库,支持RESTful API(wellrested.org)的克隆


README

Minimum PHP Version Documentation Status

WellRESTed 是一个用于创建PHP中的RESTful API和网站的库,它提供了HTTP消息的抽象、强大的处理器和中间件系统,以及灵活的路由器。

此分支(basemaster/wellrested)回归到php 7.2版本。

特性

  • 使用 PSR-7 接口处理请求、响应和流。这使您能够无缝地与其他PSR-7兼容的库一起使用WellRESTed。
  • 使用 PSR-15 接口处理处理器和中间件,以允许代码的共享和重用
  • 路由器允许您使用变量(如 /foo/{bar}/{baz})匹配路径。
  • 中间件系统提供了一种方法,可以将应用程序从离散的模块化组件中组合而成。
  • 按需加载的处理器和中间件只有在需要时才会实例化。

安装

将 "wellrested/wellrested" 添加到您的 composer.json 文件的 require 属性中。

{
    "require": {
        "wellrested/wellrested": "^5"
    }
}

文档

查看文档以开始。

示例

<?php

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use WellRESTed\Message\Response;
use WellRESTed\Message\Stream;
use WellRESTed\Server;

// Create a handler using the PSR-15 RequestHandlerInterface
class HomePageHandler implements RequestHandlerInterface
{
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        // Create and return new Response object to return with status code,
        // headers, and body.
        $response = (new Response(200))
            ->withHeader('Content-type', 'text/html')
            ->withBody(new Stream('<h1>Hello, world!</h1>'));
        return $response;
    }
}

// -----------------------------------------------------------------------------

// Create a new Server instance.
$server = new Server();
// Add a router to the server to map methods and endpoints to handlers.
$router = $server->createRouter();
// Register the route GET / with an anonymous function that provides a handler.
$router->register("GET", "/", function () { return new HomePageHandler(); });
// Add the router to the server.
$server->add($router);
// Read the request from the client, dispatch a handler, and output.
$server->respond();

开发

使用Docker运行单元测试、管理Composer依赖项,并预览文档网站。

要开始,请运行

docker-compose build
docker-compose run --rm php composer install

使用 php 服务运行PHPUnit测试

docker-compose run --rm php phpunit

使用Psalm进行静态分析

docker-compose run --rm php psalm

使用PHP Coding Standards Fixer

docker-compose run --rm php php-cs-fixer fix

使用 docs 服务生成文档

# Generate
docker-compose run --rm docs
# Clean
docker-compose run --rm docs make clean -C docs

要运行本地游乐场网站,请使用

docker-compose up -d

该命令将在 http://localhost:8080 上运行网站。您可以使用此网站浏览 文档代码覆盖率报告

版权和许可

版权 © 2020 by PJ Dietz。在MIT许可下许可。