lushobarlett / miniserver
mini是一个无依赖的轻量级服务器工具。它设计为可以根据项目进行扩展。
v3.0.2
2021-08-30 18:56 UTC
Requires
- php: ^7.4
Requires (Dev)
- phpunit/phpunit: ^9
- vimeo/psalm: ^4.9
This package is auto-updated.
Last update: 2024-09-29 05:29:05 UTC
README
Mini是一个无依赖的轻量级服务器模块,并且易于扩展。
示例
免责声明:我目前正在编写这份文档,所以这只是展示内容的外观。
<?php namespace MyApp; require 'vendor/autoload.php'; use Mini\Service; use Mini\Environment; use Mini\Request; use Mini\Response; use Mini\Tools\HTTP; use Mini\Data\Cookie; $env = (new Environment) ->response(function(Response $response) { $response->cookie(new Cookie("name", "value")); return $response; }); class NameWrapper { public string $prefix; public string $suffix; public function __construct(string $prefix, string $suffix = "!") { $this->prefix = $prefix; $this->suffix = $suffix; } public function __invoke(string $name) { return (new Response) ->status(200) ->payload($this->prefix . $this->name . $this->suffix); } } $router = new Router( Route::define("/my/route", HTTP::GET, fn(Request $r) => Response::OK()), Route::define("/hey/@name", HTTP::GET | HTTP::POST, new NameWrapper("Hey, ")) ->omit_request() ->environment($env), ... ); $debug_request = new Request([ "action" => "/my/robert", "method" => HTTP::GET, ... ]); $service = new Service($routes); $response = $service->respond($debug_request); $service->debug->append("file.log"); /** * HTTP code: 200 * body: "Hey, robert!" * cookie: "name=value" */ echo $response; ?>