gmarche/src/Framework/Middleware/MethodMiddleware.php

21 lines
651 B
PHP

<?php
namespace Framework\Middleware;
use Interop\Http\ServerMiddleware\DelegateInterface;
use Interop\Http\ServerMiddleware\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
class MethodMiddleware implements MiddlewareInterface {
public function process(ServerRequestInterface $request, DelegateInterface $next)
{
$parsedBody = $request->getParsedBody();
if (array_key_exists('_method', $parsedBody) &&
in_array($parsedBody['_method'], ['DELETE', 'PUT'])
) {
$request = $request->withMethod($parsedBody['_method']);
}
return $next->process($request);
}
}