[]
(https://github.com/ThrusterIO/http-middleware/releases)
[
]
(LICENSE)
[
]
(https://travis-ci.org/ThrusterIO/http-middleware)
[
]
(https://scrutinizer-ci.com/g/ThrusterIO/http-middleware)
[
]
(https://scrutinizer-ci.com/g/ThrusterIO/http-middleware)
[
]
(https://packagist.org/packages/thruster/http-middleware)
The Thruster HttpMiddleware Component. PSR-7 based middleware dispatcher
Via Composer
$ composer require thruster/http-middlewareA simple middlewares concept running all registered middlewares.
<?phpusePsr\Http\Message\ServerRequestInterface;
usePsr\Http\Message\ResponseInterface;
useThruster\Component\HttpMiddleware\Middlewares;
$middlewares = newMiddlewares();
$middlewares->add(
function (ServerRequestInterface$request, ResponseInterface$response, callable$next) {
// ... Do something coolreturn$next($request, $response);
}
);
$middlewares->add(newSomeCoolMiddleware());
$middlewares->add([$object, 'execute']);
$response = $middlewares($request, newResponse());
$notUsefulMiddleware = [$object, 'execute'];
if ($middlewares->has($notUsefulMiddleware)) {
$middlewares->remove($notUsefulMiddleware);
}
$response = $middlewares($request, newResponse());HttpMiddleware provides a simple trait to include middlewares inside your class.
<?phpusePsr\Http\Message\ServerRequestInterface;
usePsr\Http\Message\ResponseInterface;
useThruster\Component\HttpMiddleware\MiddlewaresAwareTrait;
$application = newclass
{
use MiddlewaresAwareTrait;
publicfunction__construct()
{
$this->addMiddleware(
function (ServerRequestInterface$request, ResponseInterface$response, callable$next) {
// ... Do something coolreturn$next($request, $response);
}
);
$this->addMiddleware(newSomeCoolMiddleware());
$this->addMiddleware([$this, 'executeAction']);
}
publicfunctionexecuteAction(ServerRequestInterface$request, ResponseInterface$response, callable$next)
{
// ...
}
publicfunctionhandleRequest(ServerRequestInterface$request)
{
$response = newResponse();
$response = $this->executeMiddlewares($request, $response);
}
};
$application->handleRequest(ServerRequest::fromGlobals());When you want to have sepparete middlewares before calling controller action and after call to controller.
<?phpusePsr\Http\Message\ServerRequestInterface;
usePsr\Http\Message\ResponseInterface;
useThruster\Component\HttpMiddleware\RequestMiddlewares;
$middlewares = newRequestMiddlewares();
$middlewares->pre(
function (ServerRequestInterface$request, ResponseInterface$response, callable$next) {
// ... Do something coolreturn$next($request, $response);
}
);
$middlewares->post(newSomeCoolMiddleware());
$response = $middlewares($request, newResponse(), [$object, 'executeControllerAction']);Like MiddlewaresAwareTrait and so the same you can register RequestMiddlewares as a trait.
<?phpusePsr\Http\Message\ServerRequestInterface;
usePsr\Http\Message\ResponseInterface;
useThruster\Component\HttpMiddleware\RequestMiddlewaresAwareTrait;
$application = newclass
{
use RequestMiddlewaresAwareTrait;
publicfunction__construct()
{
$this->addPreMiddleware(
function (ServerRequestInterface$request, ResponseInterface$response, callable$next) {
// ... Do something coolreturn$next($request, $response);
}
);
$this->addPostMiddleware(newSomeCoolMiddleware());
}
publicfunctionexecuteAction(ServerRequestInterface$request, ResponseInterface$response, callable$next)
{
// ...
}
publicfunctionhandleRequest(ServerRequestInterface$request)
{
$response = newResponse();
$response = $this->executeMiddlewares($request, $response, [$this, 'executeAction']);
}
};
$application->handleRequest(ServerRequest::fromGlobals());$ composer testPlease see CONTRIBUTING and CONDUCT for details.
Please see License File for more information.