Refactor configuration (#371)

This commit is contained in:
Sergei Predvoditelev
2025-07-29 21:44:53 +03:00
committed by GitHub
parent 84826fb466
commit 920227e636
6 changed files with 29 additions and 30 deletions

View File

@@ -7,7 +7,6 @@
!/public
!/src
!autoload.php
!configuration.php
!yii
!composer.json
!composer.lock

View File

@@ -58,7 +58,6 @@
"yiisoft/error-handler": "^4.1",
"yiisoft/html": "^3.11",
"yiisoft/http": "^1.2",
"yiisoft/injector": "^1.2",
"yiisoft/log": "^2.1.1",
"yiisoft/log-target-file": "^3.0",
"yiisoft/middleware-dispatcher": "^5.2",
@@ -99,7 +98,7 @@
}
},
"extra": {
"config-plugin-file": "configuration.php"
"config-plugin-file": "config/configuration.php"
},
"config": {
"sort-packages": true,

View File

@@ -3,21 +3,20 @@
declare(strict_types=1);
use Yiisoft\Config\Config;
use Yiisoft\Csrf\CsrfTokenMiddleware;
use Yiisoft\DataResponse\Middleware\FormatDataResponse;
use Yiisoft\Definitions\DynamicReference;
use Yiisoft\Router\RouteCollection;
use Yiisoft\Router\RouteCollectionInterface;
use Yiisoft\Router\RouteCollectorInterface;
use Yiisoft\Router\RouteCollector;
/** @var Config $config */
return [
RouteCollectionInterface::class => static function (RouteCollectorInterface $collector) use ($config) {
$collector
->middleware(CsrfTokenMiddleware::class)
->middleware(FormatDataResponse::class)
->addRoute(...$config->get('routes'));
return new RouteCollection($collector);
},
RouteCollectionInterface::class => [
'class' => RouteCollection::class,
'__construct()' => [
'collector' => DynamicReference::to(
static fn() => (new RouteCollector())->addRoute(...$config->get('routes')),
),
],
],
];

View File

@@ -3,10 +3,14 @@
declare(strict_types=1);
use App\Handler\NotFound\NotFoundHandler;
use Yiisoft\Csrf\CsrfTokenMiddleware;
use Yiisoft\DataResponse\Middleware\FormatDataResponse;
use Yiisoft\Definitions\DynamicReference;
use Yiisoft\Definitions\Reference;
use Yiisoft\Injector\Injector;
use Yiisoft\ErrorHandler\Middleware\ErrorCatcher;
use Yiisoft\Middleware\Dispatcher\MiddlewareDispatcher;
use Yiisoft\Router\Middleware\Router;
use Yiisoft\Session\SessionMiddleware;
use Yiisoft\Yii\Http\Application;
/** @var array $params */
@@ -14,10 +18,18 @@ use Yiisoft\Yii\Http\Application;
return [
Application::class => [
'__construct()' => [
'dispatcher' => DynamicReference::to(static function (Injector $injector) use ($params) {
return $injector->make(MiddlewareDispatcher::class)
->withMiddlewares($params['middlewares']);
}),
'dispatcher' => DynamicReference::to([
'class' => MiddlewareDispatcher::class,
'withMiddlewares()' => [
[
ErrorCatcher::class,
SessionMiddleware::class,
CsrfTokenMiddleware::class,
FormatDataResponse::class,
Router::class,
],
],
]),
'fallbackHandler' => Reference::to(NotFoundHandler::class),
],
],

View File

@@ -2,14 +2,4 @@
declare(strict_types=1);
use Yiisoft\ErrorHandler\Middleware\ErrorCatcher;
use Yiisoft\Router\Middleware\Router;
use Yiisoft\Session\SessionMiddleware;
return [
'middlewares' => [
ErrorCatcher::class,
SessionMiddleware::class,
Router::class,
],
];
return [];