thenlabs/http-server

v1.2.1 2021-10-23 22:14 UTC

This package is auto-updated.

Last update: 2024-09-24 04:28:24 UTC


README

使用Symfony组件编写的PHP HTTP服务器。

如果您喜欢这个项目,请给我们一个⭐。

安装。

$ composer require thenlabs/http-server

使用。

创建一个包含以下示例内容的文件

您应根据自己的需求更改内容。

<?php
// run-server.php

require __DIR__.'/vendor/autoload.php';

use ThenLabs\HttpServer\HttpServer;

$config = [
    'host' => '127.0.0.1',
    'port' => 8080,
    'document_root' => __DIR__.'/vendor/thenlabs/http-server/tests/Functional/document_root',
];

$server = new HttpServer($config);
$server->start();

while (true) {
    $server->run();
}

该文件应按如下方式执行

$ php run-server.php

执行后,我们可以导航到URL,并看到相应的页面。

在我们的示例中,我们正在提供存储在tests/document_root目录中的index.html文件。

创建自定义路由。

HttpServer使用Symfony路由组件来处理路由,因此您可以使用它的所有可能性。

以下示例展示了如何创建一个只能通过GET请求访问的自定义路由。

<?php

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

// ...

$server->get('/article/{id}', function (Request $request, array $parameters): Response {
    return new Response("This is the article {$parameters['id']}");
});

// ...

使用日志。

如您所见,默认情况下,所有服务器请求的结果都会显示在控制台。

日志是使用流行的Monolog库创建的。

以下示例展示了将日志放入文件的方法。

<?php

// ...
use Monolog\Handler\StreamHandler;

// ...
$server->getLogger()->pushHandler(new StreamHandler('/path/to/file.logs'));

开发。

运行测试。

启动selenium服务器。

$ java -jar path/to/selenium-server-standalone-x.y.z.jar

运行PHPUnit。

$ ./vendor/bin/pyramidal