-
-
Notifications
You must be signed in to change notification settings - Fork 135
/
router.php
45 lines (39 loc) · 1.36 KB
/
router.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
declare(strict_types=1);
use App\Middleware\ExceptionMiddleware;
use Yiisoft\Config\Config;
use Yiisoft\DataResponse\Middleware\FormatDataResponse;
use Yiisoft\Request\Body\RequestBodyParser;
use Yiisoft\Router\FastRoute\UrlGenerator;
use Yiisoft\Router\Group;
use Yiisoft\Router\RouteCollection;
use Yiisoft\Router\RouteCollectionInterface;
use Yiisoft\Router\RouteCollectorInterface;
use Yiisoft\Router\UrlGeneratorInterface;
/**
* @var Config $config
* @var array $params
*/
return [
UrlGeneratorInterface::class => [
'class' => UrlGenerator::class,
'setEncodeRaw()' => [$params['yiisoft/router-fastroute']['encodeRaw']],
'setDefaultArgument()' => ['_language', 'en'],
'reset' => function () {
$this->defaultArguments = ['_language', 'en'];
},
],
RouteCollectionInterface::class => static function (RouteCollectorInterface $collector) use ($config) {
$collector
->middleware(FormatDataResponse::class)
->middleware(ExceptionMiddleware::class)
->middleware(RequestBodyParser::class)
->addGroup(
Group::create('/{_language}')->routes(...$config->get('app-routes')),
)
->addGroup(
Group::create()->routes(...$config->get('routes')),
);
return new RouteCollection($collector);
},
];