2017 © Pedro Peláez
 

library http

image

meekframework/http

  • Tuesday, October 31, 2017
  • by nbish11
  • Repository
  • 1 Watchers
  • 0 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

MeekFramework Http Component

![Scrutinizer Build Status][scrutinizer-build-image] ![Scrutinizer Code Quality][scrutinizer-code-quality-image] ![Scrutinizer Code Coverage][scrutinizer-code-coverage-image] Packagist Latest Stable Version MIT License, (*1)

A PSR7 compliant library for handling HTTP requests, responses, middleware and errors., (*2)

Installation

With Composer:, (*3)

composer require meekframework/route

Usage

Here is an example integrating Diactoros and FastRoute together with the Meek HTTP component:, (*4)

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

use FastRoute\simpleDispatcher;
use FastRoute\RouteCollector;
use FastRoute\Dispatcher;
use Meek\Http\ClientError;
use Meek\Http\ClientError\MethodNotAllowed;
use Meek\Http\ClientError\NotFound;
use Zend\Diactoros\ServerRequestFactory;
use Zend\Diactoros\Response\TextResponse;
use Zend\Diactoros\Response\SapiEmitter;

$dispatcher = simpleDispatcher(function(RouteCollector $r) {
    $r->addRoute('GET', '/users', 'get_all_users_handler');
    $r->addRoute('GET', '/user/{id:\d+}', 'get_user_handler');
    $r->addRoute('GET', '/articles/{id:\d+}[/{title}]', 'get_article_handler');
});

$request = ServerRequestFactory::fromGlobals();
$routeInfo = $dispatcher->dispatch($request->getMethod(), $request->getRequestTarget());

try {
    switch ($routeInfo[0]) {
        case Dispatcher::NOT_FOUND:
            throw new NotFound();
            break;

        case Dispatcher::METHOD_NOT_ALLOWED:
            $allowedMethods = $routeInfo[1];
            throw new MethodNotAllowed($allowedMethods);
            break;

        case Dispatcher::FOUND:
            $response = call_user_func_array($routeInfo[1], $routeInfo[2]);
            break;
    }
} catch (ClientError $httpClientError) {
    $response = new TextResponse((string) $httpClientError);    // response body...
    $response = $httpClientError->prepare($response);   // add headers, code, etc...
}

(new SapiEmitter())->emit($response);

API

Contributing

See CONTRIBUTING.md., (*5)

Credits/Authors

License

The MIT License (MIT). Please see LICENSE.md for more information., (*6)

The Versions