Skip to content

Commit d3a62b7

Browse files
authored
Create ConfigProvider.php
1 parent f0fb614 commit d3a62b7

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

src/ConfigProvider.php

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
3+
namespace Bermuda\Router;
4+
5+
use Psr\Container\ContainerInterface;
6+
use Bermuda\Router\Locator\RouteLocator;
7+
use Bermuda\Router\Locator\RouteLocatorInterface;
8+
use Bermuda\Router\Middleware\DispatchRouteMiddleware;
9+
use Bermuda\Router\Middleware\MatchRouteMiddleware;
10+
use Bermuda\MiddlewareFactory\MiddlewareFactoryInterface;
11+
12+
/**
13+
* Service provider configuration for the router package
14+
*
15+
* Registers all necessary services and their factories in the DI container
16+
*/
17+
final class ConfigProvider extends \Bermuda\Config\ConfigProvider
18+
{
19+
public const string CONFIG_KEY_ROUTES_FILE = 'Bermuda\Router:routes_file';
20+
public const string CONFIG_KEY_USE_CACHE = 'Bermuda\Router:use_cache';
21+
public const string CONFIG_KEY_CONTEXT = 'Bermuda\Router:context';
22+
23+
/**
24+
* {@inheritDoc}
25+
*/
26+
protected function getFactories(): array
27+
{
28+
return [
29+
Router::class => [Router::class, 'createFromContainer'],
30+
RouteMap::class => [RouteLocatorInterface::class, 'getRoutes'],
31+
RouteLocator::class => [RouteLocator::class, 'createFromContainer'],
32+
MatchRouteMiddleware::class => [MatchRouteMiddleware::class, 'createFromContainer']
33+
];
34+
}
35+
36+
protected function getAliases(): array
37+
{
38+
return [
39+
RouteLocatorInterface::class => RouteLocator::class,
40+
CompilerInterface::class => Compiler::class,
41+
Matcher::class => RouteMap::class,
42+
Generator::class => RouteMap::class,
43+
];
44+
}
45+
46+
/**
47+
* {@inheritDoc}
48+
*/
49+
protected function getInvokables(): array
50+
{
51+
return [DispatchRouteMiddleware::class, CacheFileProvider::class];
52+
}
53+
}

0 commit comments

Comments
 (0)