52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Laminas\ConfigAggregator\ArrayProvider;
|
|
use Laminas\ConfigAggregator\ConfigAggregator;
|
|
use Laminas\ConfigAggregator\PhpFileProvider;
|
|
use Mezzio\Helper\ConfigProvider;
|
|
|
|
// To enable or disable caching, set the `ConfigAggregator::ENABLE_CACHE` boolean in
|
|
// `config/autoload/local.php`.
|
|
$cacheConfig = [
|
|
'config_cache_path' => 'data/cache/config-cache.php',
|
|
];
|
|
|
|
$aggregator = new ConfigAggregator([
|
|
\Mezzio\Tooling\ConfigProvider::class,
|
|
\Mezzio\Plates\ConfigProvider::class,
|
|
\Mezzio\Helper\ConfigProvider::class,
|
|
\Mezzio\Router\FastRouteRouter\ConfigProvider::class,
|
|
\Laminas\HttpHandlerRunner\ConfigProvider::class,
|
|
// Include cache configuration
|
|
new ArrayProvider($cacheConfig),
|
|
ConfigProvider::class,
|
|
\Mezzio\ConfigProvider::class,
|
|
\Mezzio\Router\ConfigProvider::class,
|
|
\Laminas\Diactoros\ConfigProvider::class,
|
|
|
|
// Swoole config to overwrite some services (if installed)
|
|
class_exists(\Mezzio\Swoole\ConfigProvider::class)
|
|
? \Mezzio\Swoole\ConfigProvider::class
|
|
: function (): array {
|
|
return [];
|
|
},
|
|
|
|
// Default App module config
|
|
App\ConfigProvider::class,
|
|
|
|
// Load application config in a pre-defined order in such a way that local settings
|
|
// overwrite global settings. (Loaded as first to last):
|
|
// - `global.php`
|
|
// - `*.global.php`
|
|
// - `local.php`
|
|
// - `*.local.php`
|
|
new PhpFileProvider(realpath(__DIR__) . '/autoload/{{,*.}global,{,*.}local}.php'),
|
|
|
|
// Load development config if it exists
|
|
new PhpFileProvider(realpath(__DIR__) . '/development.config.php'),
|
|
], $cacheConfig['config_cache_path']);
|
|
|
|
return $aggregator->getMergedConfig();
|