An open API service indexing awesome lists of open source software.

https://github.com/effectra/http-server-handler

Handles an HTTP request by processing a stack of middlewares.
https://github.com/effectra/http-server-handler

http http-server middleware php psr server

Last synced: about 1 month ago
JSON representation

Handles an HTTP request by processing a stack of middlewares.

Awesome Lists containing this project

README

          

# Effectra RequestHandler

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.

```php
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);
```

2. Call the `handle` method of the `RequestHandler` class, passing a `ServerRequestInterface` object representing the incoming request.

```php
use Psr\Http\Message\ServerRequestInterface;

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

// Handle the request
$response = $requestHandler->handle($request);
```

3. 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.

```php
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.

```php
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](LICENSE).