config.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. declare(strict_types=1);
  3. namespace Shlinkio\Shlink;
  4. use Laminas\ConfigAggregator;
  5. use Laminas\Diactoros;
  6. use Mezzio;
  7. use Mezzio\ProblemDetails;
  8. use Mezzio\Swoole\ConfigProvider as SwooleConfigProvider;
  9. use function class_exists;
  10. use function Shlinkio\Shlink\Common\env;
  11. return (new ConfigAggregator\ConfigAggregator([
  12. Mezzio\ConfigProvider::class,
  13. Mezzio\Router\ConfigProvider::class,
  14. Mezzio\Router\FastRouteRouter\ConfigProvider::class,
  15. class_exists(SwooleConfigProvider::class) ? SwooleConfigProvider::class : new ConfigAggregator\ArrayProvider([]),
  16. ProblemDetails\ConfigProvider::class,
  17. Diactoros\ConfigProvider::class,
  18. Common\ConfigProvider::class,
  19. Config\ConfigProvider::class,
  20. Importer\ConfigProvider::class,
  21. IpGeolocation\ConfigProvider::class,
  22. EventDispatcher\ConfigProvider::class,
  23. Core\ConfigProvider::class,
  24. CLI\ConfigProvider::class,
  25. Rest\ConfigProvider::class,
  26. new ConfigAggregator\PhpFileProvider('config/autoload/{{,*.}global,{,*.}local}.php'),
  27. env('APP_ENV') === 'test'
  28. ? new ConfigAggregator\PhpFileProvider('config/test/*.global.php')
  29. : new ConfigAggregator\LaminasConfigProvider('config/params/{generated_config.php,*.config.{php,json}}'),
  30. ], 'data/cache/app_config.php', [
  31. Core\Config\SimplifiedConfigParser::class,
  32. Core\Config\BasePathPrefixer::class,
  33. Core\Config\DeprecatedConfigParser::class,
  34. ]))->getMergedConfig();