2017 © Pedro Peláez
 

library httpserver

A simple HTTP server

image

yosymfony/httpserver

A simple HTTP server

  • Saturday, January 14, 2017
  • by yosymfony
  • Repository
  • 4 Watchers
  • 18 Stars
  • 8,068 Installations
  • PHP
  • 2 Dependents
  • 0 Suggesters
  • 3 Forks
  • 1 Open issues
  • 6 Versions
  • 9 % Grown

The README.md

A simple HTTP server for PHP

HttpServer is a simple HTTP server powerd REACT., (*1)

Build Status, (*2)

Installation

Use Composer to install Yosyfmony HttpServer package:, (*3)

Add the following to your composer.json and run composer update., (*4)

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

More information about the package on Packagist., (*5)

How to use?

It's simple. The RequestHandler need a function for managing each connection:, (*6)

$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:, (*7)

$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, (*8)

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:, (*9)

$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:, (*10)

// 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:, (*11)

$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:, (*12)

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:, (*13)

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:, (*14)

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

The Versions

14/01 2017

dev-master

9999999-dev http://yosymfony.com

A simple HTTP server

  Sources   Download

MIT

The Requires

 

server http request react

14/01 2017

v1.3.0

1.3.0.0 http://yosymfony.com

A simple HTTP server

  Sources   Download

MIT

The Requires

 

server http request react

19/10 2015

v1.2.1

1.2.1.0 http://yosymfony.com

A simple HTTP server

  Sources   Download

MIT

The Requires

 

The Development Requires

server http request react

23/07 2015

v1.2.0

1.2.0.0 http://yosymfony.com

A simple HTTP server

  Sources   Download

MIT

The Requires

 

The Development Requires

server http request react

07/01 2015

v1.1.0

1.1.0.0 http://yosymfony.com

A simple HTTP server

  Sources   Download

MIT

The Requires

 

The Development Requires

server http request react

22/09 2014

v1.0.0

1.0.0.0 http://yosymfony.com

A simple HTTP server

  Sources   Download

MIT

The Requires

 

The Development Requires

server http request react