4
0
mirror of https://github.com/AzuraCast/AzuraCast.git synced 2024-06-14 13:16:37 +00:00

Fixes #5405, #5410 -- Roll back to previous ControllerInvoker strategy.

This commit is contained in:
Buster "Silver Eagle" Neece 2022-05-23 21:19:01 -05:00
parent 94f0015b22
commit a7a779f9f1
No known key found for this signature in database
GPG Key ID: F1D2E64A0005E80E
2 changed files with 36 additions and 2 deletions

View File

@ -9,13 +9,13 @@ use App\Enums\SupportedLocales;
use App\Http\Factory\ResponseFactory;
use App\Http\Factory\ServerRequestFactory;
use DI;
use Invoker\Invoker;
use Monolog\ErrorHandler;
use Monolog\Registry;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\Log\LoggerInterface;
use Slim\App;
use Slim\Factory\ServerRequestCreatorFactory;
use Slim\Handlers\Strategies\RequestResponseNamedArgs;
class AppFactory
{
@ -53,7 +53,8 @@ class AppFactory
$container->set(App::class, $app);
$routeCollector = $app->getRouteCollector();
$routeCollector->setDefaultInvocationStrategy(new RequestResponseNamedArgs());
$routeCollector->setDefaultInvocationStrategy(new ControllerInvoker(new Invoker()));
$environment = $container->get(Environment::class);
if ($environment->isProduction()) {

33
src/ControllerInvoker.php Normal file
View File

@ -0,0 +1,33 @@
<?php
declare(strict_types=1);
namespace App;
use Invoker\InvokerInterface;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Interfaces\InvocationStrategyInterface;
class ControllerInvoker implements InvocationStrategyInterface
{
public function __construct(
protected InvokerInterface $invoker
) {
}
public function __invoke(
callable $callable,
ServerRequestInterface $request,
ResponseInterface $response,
array $routeArguments
): ResponseInterface {
$parameters = [
'request' => $request,
'response' => $response,
];
$parameters += $routeArguments;
return $this->invoker->call($callable, $parameters);
}
}