2016-04-10 02:38:07 -05:00
|
|
|
<?php
|
2019-10-05 10:26:10 -05:00
|
|
|
|
2017-10-12 03:13:20 -05:00
|
|
|
declare(strict_types=1);
|
|
|
|
|
2018-09-29 02:52:32 -05:00
|
|
|
namespace Shlinkio\Shlink;
|
|
|
|
|
2020-01-01 14:11:53 -06:00
|
|
|
use Laminas\ConfigAggregator;
|
2020-10-16 12:21:40 -05:00
|
|
|
use Laminas\Diactoros;
|
2020-01-01 14:11:53 -06:00
|
|
|
use Mezzio;
|
|
|
|
use Mezzio\ProblemDetails;
|
2021-08-07 04:05:20 -05:00
|
|
|
use Mezzio\Swoole;
|
2019-07-19 12:54:39 -05:00
|
|
|
|
2021-02-13 10:48:03 -06:00
|
|
|
use function class_exists;
|
2022-01-04 10:50:41 -06:00
|
|
|
use function Shlinkio\Shlink\Config\env;
|
2022-01-15 04:34:17 -06:00
|
|
|
use function Shlinkio\Shlink\Core\putNotYetDefinedEnv;
|
2016-04-10 02:38:07 -05:00
|
|
|
|
2021-12-06 10:15:19 -06:00
|
|
|
use const PHP_SAPI;
|
|
|
|
|
|
|
|
$isCli = PHP_SAPI === 'cli';
|
2022-01-15 04:34:17 -06:00
|
|
|
$isTestEnv = env('APP_ENV') === 'test';
|
2021-12-06 10:15:19 -06:00
|
|
|
|
2017-03-24 14:34:18 -05:00
|
|
|
return (new ConfigAggregator\ConfigAggregator([
|
2022-01-15 04:34:17 -06:00
|
|
|
! $isTestEnv
|
|
|
|
? new ConfigAggregator\ArrayProvider((new ConfigAggregator\ConfigAggregator([
|
|
|
|
new ConfigAggregator\PhpFileProvider('config/params/generated_config.php'),
|
|
|
|
], null, [function (array $generatedConfig) {
|
|
|
|
foreach ($generatedConfig as $envVar => $value) {
|
|
|
|
putNotYetDefinedEnv($envVar, $value);
|
|
|
|
}
|
|
|
|
|
|
|
|
return [];
|
|
|
|
}]))->getMergedConfig())
|
|
|
|
: new ConfigAggregator\ArrayProvider([]),
|
2020-01-01 14:11:53 -06:00
|
|
|
Mezzio\ConfigProvider::class,
|
|
|
|
Mezzio\Router\ConfigProvider::class,
|
|
|
|
Mezzio\Router\FastRouteRouter\ConfigProvider::class,
|
2021-12-06 10:15:19 -06:00
|
|
|
$isCli && class_exists(Swoole\ConfigProvider::class)
|
|
|
|
? Swoole\ConfigProvider::class
|
|
|
|
: new ConfigAggregator\ArrayProvider([]),
|
2019-11-22 12:49:14 -06:00
|
|
|
ProblemDetails\ConfigProvider::class,
|
2020-10-16 12:21:40 -05:00
|
|
|
Diactoros\ConfigProvider::class,
|
2016-07-19 16:35:47 -05:00
|
|
|
Common\ConfigProvider::class,
|
2020-03-14 13:24:21 -05:00
|
|
|
Config\ConfigProvider::class,
|
2020-10-22 11:12:22 -05:00
|
|
|
Importer\ConfigProvider::class,
|
2019-08-10 06:42:37 -05:00
|
|
|
IpGeolocation\ConfigProvider::class,
|
2020-03-14 13:24:21 -05:00
|
|
|
EventDispatcher\ConfigProvider::class,
|
2016-07-19 16:35:47 -05:00
|
|
|
Core\ConfigProvider::class,
|
|
|
|
CLI\ConfigProvider::class,
|
|
|
|
Rest\ConfigProvider::class,
|
2018-12-07 13:42:58 -06:00
|
|
|
new ConfigAggregator\PhpFileProvider('config/autoload/{{,*.}global,{,*.}local}.php'),
|
2022-01-15 04:34:17 -06:00
|
|
|
$isTestEnv
|
2019-01-26 02:09:49 -06:00
|
|
|
? new ConfigAggregator\PhpFileProvider('config/test/*.global.php')
|
2022-01-15 04:34:17 -06:00
|
|
|
: new ConfigAggregator\ArrayProvider([]),
|
2019-04-18 03:37:38 -05:00
|
|
|
], 'data/cache/app_config.php', [
|
2019-09-13 13:03:53 -05:00
|
|
|
Core\Config\BasePathPrefixer::class,
|
2019-04-18 03:37:38 -05:00
|
|
|
]))->getMergedConfig();
|