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.
- Host: GitHub
- URL: https://github.com/effectra/http-server-handler
- Owner: effectra
- License: mit
- Created: 2023-05-16T20:04:08.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-06-29T16:36:57.000Z (over 2 years ago)
- Last Synced: 2024-12-29T16:34:05.473Z (about 1 year ago)
- Topics: http, http-server, middleware, php, psr, server
- Language: PHP
- Homepage:
- Size: 7.81 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
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).