承接 yosymfony/httpserver 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yosymfony/httpserver

最新稳定版本:v1.3.0

Composer 安装命令:

composer require yosymfony/httpserver

包简介

A simple HTTP server

README 文档

README

HttpServer is a simple HTTP server powerd REACT.

Build Status

Installation

Use Composer to install Yosyfmony HttpServer package:

Add the following to your composer.json and run composer update.

"require": {
    "yosymfony/httpserver": "1.3.x"
}

More information about the package on Packagist.

How to use?

It's simple. The RequestHandler need a function for managing each connection:

$requestHandler = new RequestHandler(function($request) {
    return 'Hi Yo! Symfony';
});

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

// go to http://localhost:8080

How to configure the RequestHandler?

You can configure port and host for listening requests:

$requestHandler = new RequestHandler( function($request) {
    return 'Hi Yo! Symfony';
});

$requestHandler->listen(8081, '127.0.0.1');

The defatult values:

  • port: 8080
  • host: 0.0.0.0

The handler function

The handler function receives a unique parameter to describe the resquest. By default, this argument is a object type React\Http\Request. If you want to receive a Symfony HttpFoundation Request you need active this mode:

$requestHandler = new RequestHandler( function($request) {
    return 'Hi Yo! Symfony';
});

$requestHandler
    ->listen(8081, '127.0.0.1')
    ->enableHttpFoundationRequest(); // $requestHandler uses fluent interface

In case you want to use a HttpKernelInterface like Symfony, Silex or Laravel, simple use the HttpKernelRequestHandler handler like this:

// Create our kernel.
$httpKernel = new ExampleHttpKernel();
$options = array(
    'host' => '127.0.0.1',
    'port' => 8081,
);

// Wrap it with the RequestHandler.
$handler = new \Yosymfony\HttpServer\HttpKernelRequestHandler($httpKernel, $options);

// Start the server using the RequestHandler.
$server = new \Yosymfony\HttpServer\HttpServer($handler);
$server->start();

The response

The most simple use-case is return a string. By default the Content-Type value is text/plain at the response header:

$requestHandler = new RequestHandler( function($request) {
    return 'Hi Yo! Symfony';
});

If you want customize the status code and the response header you can return a array like this:

requestHandler = new RequestHandler( function($request) {
    return [
        'content' => '<?xml version="1.0" encoding="UTF-8"?><root>Hi Yo! Symfony</root>',
        'headers' => ['Content-Type' => 'text/xml'],
        'status_code' => 200
    ];
});

The best way to make a response is using Response from Symfony HttpFoundation:

use Symfony\Component\HttpFoundation\Response;

requestHandler = new RequestHandler( function($request) {
    return new Response(
        'Hi Yo! Symfony',
        Response::HTTP_OK,
        array('content-type' => 'text/html')
    );
});

Unit tests

You can run the unit tests with the following command:

$ cd your-path/vendor/yosymfony/httpserver
$ composer.phar install --dev
$ phpunit

统计信息

  • 总下载量: 39.81k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 19
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 19
  • Watchers: 2
  • Forks: 3
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-08-10