1
0
mirror of https://github.com/flarum/core.git synced 2025-10-12 07:24:27 +02:00

Use PSR-15 middleware standard

This finally adopts the new standardized interfaces instead of the
work-in-progress ones with the `Interop\` prefix.

Since we have now updated to PHP 7.1, we can also use Stratigility
3.0 as the middleware dispatcher.
This commit is contained in:
Franz Liedke
2018-05-29 00:17:13 +02:00
parent 5d0ebde6b8
commit 3680d88fb7
15 changed files with 101 additions and 96 deletions

View File

@@ -11,15 +11,16 @@
namespace Flarum\Api\Middleware;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
use Psr\Http\Server\RequestHandlerInterface as Handler;
class FakeHttpMethods implements MiddlewareInterface
class FakeHttpMethods implements Middleware
{
const HEADER_NAME = 'x-http-method-override';
public function process(Request $request, DelegateInterface $delegate)
public function process(Request $request, Handler $handler): Response
{
if ($request->getMethod() === 'POST' && $request->hasHeader(self::HEADER_NAME)) {
$fakeMethod = $request->getHeaderLine(self::HEADER_NAME);
@@ -27,6 +28,6 @@ class FakeHttpMethods implements MiddlewareInterface
$request = $request->withMethod(strtoupper($fakeMethod));
}
return $delegate->process($request);
return $handler->handle($request);
}
}

View File

@@ -13,12 +13,12 @@ namespace Flarum\Api\Middleware;
use Exception;
use Flarum\Api\ErrorHandler;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Server\MiddlewareInterface as Middleware;
use Psr\Http\Server\RequestHandlerInterface as Handler;
class HandleErrors implements MiddlewareInterface
class HandleErrors implements Middleware
{
/**
* @var ErrorHandler
@@ -35,15 +35,11 @@ class HandleErrors implements MiddlewareInterface
/**
* Catch all errors that happen during further middleware execution.
*
* @param Request $request
* @param DelegateInterface $delegate
* @return Response
*/
public function process(Request $request, DelegateInterface $delegate)
public function process(Request $request, Handler $handler): Response
{
try {
return $delegate->process($request);
return $handler->handle($request);
} catch (Exception $e) {
return $this->errorHandler->handle($e);
}