effectra/http-server-handler

The Effectra HTTP Server Handler package.

v2.0.0 2023-06-29 16:06 UTC

This package is auto-updated.

Last update: 2024-04-18 11:55:20 UTC


README

The RequestHandler class is designed to handle HTTP requests by processing a stack of middlewares. It implements the RequestHandlerInterface to ensure compatibility with standardized request handling protocols.

Installation

You can install the RequestHandler class using Composer. Run the following command:

composer require effectra/http-server-handler

Usage

To use the RequestHandler, follow these steps:

  1. Create an instance of the RequestHandler class, providing a ResponseInterface object and an optional array of middlewares as parameters in the constructor.
use Effectra\Http\Server\RequestHandler;
use Effectra\Http\Message\Response;

// Create a response object
$response = new Response();

// Create an array of middlewares
$middlewares = [
    new YourMiddleware(),
    // Add more middlewares as needed
];

// Create an instance of RequestHandler
$requestHandler = new RequestHandler($response, $middlewares);
  1. Call the handle method of the RequestHandler class, passing a ServerRequestInterface object representing the incoming request.
use Psr\Http\Message\ServerRequestInterface;

// Create a ServerRequestInterface object representing the incoming request
$request = ServerRequestInterface::fromGlobals();

// Handle the request
$response = $requestHandler->handle($request);
  1. The handle method will process the middlewares stack, executing each middleware in the order they were added. It will return a ResponseInterface object representing the response generated by the middlewares.
use Psr\Http\Message\ResponseInterface;

// Get the response generated by the middlewares stack
echo $response->getBody();

Additional Methods

getLastRequest

The RequestHandler class provides a convenient method, getLastRequest, to retrieve the last processed request. It returns a ServerRequestInterface|null object representing the last request or null if no request has been processed.

use Psr\Http\Message\ServerRequestInterface;

// Retrieve the last processed request
$lastRequest = $requestHandler->getLastRequest();

if ($lastRequest instanceof ServerRequestInterface) {
    // Process the last request
} else {
    // No request has been processed yet
}

Contributing

Contributions are welcome! If you would like to contribute to the development of the RequestHandler class, please follow these steps:

  1. Fork the repository and clone it locally.
  2. Create a new branch for your changes.
  3. Make your modifications and additions.
  4. Write tests to ensure the functionality of the class.
  5. Commit your changes and push them to your fork.
  6. Submit a pull request detailing your changes.

License

This project is licensed under the MIT License.