ronappleton / static-web
测试 PHP 服务器
v1.0.1
2021-03-27 22:35 UTC
Requires
- php: >=5.4
This package is auto-updated.
Last update: 2024-09-28 18:48:03 UTC
README
概述
Static Web 是一个用于模拟 Web 服务器响应的简单库。它是为了测试 Guzzle 客户端的中间件而创建的。
它是为了在单元测试中使用而创建的。
它的使用很简单,它的操作也很简单,因此任何高于 5.4 版本的 PHP 都可以使用。
安装
composer require ronappleton/static-web
用法
此用法示例仅覆盖单元测试,因为它是为此目的而制作的,但它并不仅限于该用法,但请仅将其用于本地测试环境,它是单线程的,因此会阻塞,并且绝对不适用于生产环境。
将 2 个 use 语句添加到您的测试类顶部
use RonAppleton\StaticWeb\Server; use RonAppleton\StaticWeb\Router;
在您的测试类的构造函数或设置方法中,创建一个新的路由实例以使用全局路由,在您的测试方法开始时使用 $this->router->clearRoutes()
。
需要注意的是,在处理每个请求之前都会重新加载路由。
Server::run($port, $domain, $docRoot, $routerRoute); $this->router = new Router();
服务器端口是一个整型,其余字段为字符串。
要添加路由,请使用以下语法
$this->router->get($route, $content, $options = []);
其中 route
是一个字符串,content
是一个字符串,可以是普通字符串或要评估的 PHP 脚本,$options
是一个包含请求可选详细信息的数组,如头信息或响应详细信息。
所有标准路由方法都可用
- GET
- HEAD
- POST
- PUT
- DELETE
- CONNECT
- OPTIONS
- TRACE
- PATCH
然而,你应该始终记住,提供响应的责任在于你。
在您的清理方法中,只需调用 Server::stop();
来终止服务器。
虽然服务器在用法上有限制,但请记住,您可以在返回响应之前传递要评估的 PHP 文件的 内容,这意味着所有超级全局变量等都可以供您使用,因此如果您需要查询参数,请在您的评估脚本中获取它们。