shlink/config/config.php

52 lines
1.8 KiB
PHP
Raw Normal View History

2016-04-10 10:38:07 +03:00
<?php
2019-10-05 18:26:10 +03:00
2017-10-12 11:13:20 +03:00
declare(strict_types=1);
namespace Shlinkio\Shlink;
2020-01-01 23:11:53 +03:00
use Laminas\ConfigAggregator;
2020-10-16 20:21:40 +03:00
use Laminas\Diactoros;
2020-01-01 23:11:53 +03:00
use Mezzio;
use Mezzio\ProblemDetails;
use Mezzio\Swoole;
use Shlinkio\Shlink\Config\ConfigAggregator\EnvVarLoaderProvider;
use function class_exists;
use function Shlinkio\Shlink\Config\env;
use function Shlinkio\Shlink\Config\runningInOpenswoole;
use function Shlinkio\Shlink\Config\runningInRoadRunner;
2016-04-10 10:38:07 +03:00
$isTestEnv = env('APP_ENV') === 'test';
$enableSwoole = ! runningInRoadRunner() && runningInOpenswoole();
2021-12-06 19:15:19 +03:00
2017-03-24 22:34:18 +03:00
return (new ConfigAggregator\ConfigAggregator([
! $isTestEnv
? new EnvVarLoaderProvider('config/params/generated_config.php', Core\Config\EnvVars::values())
: new ConfigAggregator\ArrayProvider([]),
2020-01-01 23:11:53 +03:00
Mezzio\ConfigProvider::class,
Mezzio\Router\ConfigProvider::class,
Mezzio\Router\FastRouteRouter\ConfigProvider::class,
2022-08-21 14:19:27 +03:00
$enableSwoole && class_exists(Swoole\ConfigProvider::class)
2021-12-06 19:15:19 +03:00
? Swoole\ConfigProvider::class
: new ConfigAggregator\ArrayProvider([]),
ProblemDetails\ConfigProvider::class,
2020-10-16 20:21:40 +03:00
Diactoros\ConfigProvider::class,
Common\ConfigProvider::class,
Config\ConfigProvider::class,
Importer\ConfigProvider::class,
IpGeolocation\ConfigProvider::class,
EventDispatcher\ConfigProvider::class,
2022-08-03 20:32:59 +03:00
Core\ConfigProvider::class,
CLI\ConfigProvider::class,
Rest\ConfigProvider::class,
new ConfigAggregator\PhpFileProvider('config/autoload/{{,*.}global,{,*.}local}.php'),
$isTestEnv
? new ConfigAggregator\PhpFileProvider('config/test/*.global.php')
: new ConfigAggregator\ArrayProvider([]),
// Routes have to be loaded last
new ConfigAggregator\PhpFileProvider('config/autoload/routes.config.php'),
], 'data/cache/app_config.php', [
Core\Config\BasePathPrefixer::class,
Core\Config\MultiSegmentSlugProcessor::class,
]))->getMergedConfig();