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
RequestHandler
class, providing aResponseInterface
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);
- Call the
handle
method of theRequestHandler
class, passing aServerRequestInterface
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);
- The
handle
method will process the middlewares stack, executing each middleware in the order they were added. It will return aResponseInterface
object 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.