thenlabs / http-server
v1.2.1
2021-10-23 22:14 UTC
Requires
- monolog/monolog: ^2.1
- symfony/event-dispatcher: >=4.4
- symfony/http-foundation: >=4.4
- symfony/mime: >=4.4
- symfony/routing: >=4.4
- thenlabs/socket-server: ^1.1.4
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.3.1
- friendsofphp/php-cs-fixer: ^3.2
- php-webdriver/webdriver: ^1.8
- symfony/process: ^5.3
- thenlabs/pyramidal-tests: 2.0.x-dev
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

