ronappleton/static-web

测试 PHP 服务器

v1.0.1 2021-03-27 22:35 UTC

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 文件的 内容,这意味着所有超级全局变量等都可以供您使用,因此如果您需要查询参数,请在您的评估脚本中获取它们。