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.
You can install the RequestHandler class using Composer. Run the following command:
composer require effectra/http-server-handler
To use the RequestHandler, follow these steps:
- Create an instance of the
RequestHandlerclass, providing aResponseInterfaceobject 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);- Call the
handlemethod of theRequestHandlerclass, passing aServerRequestInterfaceobject 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);- The
handlemethod will process the middlewares stack, executing each middleware in the order they were added. It will return aResponseInterfaceobject representing the response generated by the middlewares.
use Psr\Http\Message\ResponseInterface;
// Get the response generated by the middlewares stack
echo $response->getBody();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
}Contributions are welcome! If you would like to contribute to the development of the RequestHandler class, please follow these steps:
- Fork the repository and clone it locally.
- Create a new branch for your changes.
- Make your modifications and additions.
- Write tests to ensure the functionality of the class.
- Commit your changes and push them to your fork.
- Submit a pull request detailing your changes.
This project is licensed under the MIT License.