helhum/config-loader
最新稳定版本:v0.12.6
Composer 安装命令:
composer require helhum/config-loader
包简介
Generic config loader with context and environment support.
README 文档
README
This is just a class, which helps you to merge a base configuration with configuration from different contexts and the environment.
Just require it using composer: composer require helhum/config-loader
Basic usage
$context = 'production'; $confDir = '/path/to/conf'; $configReaderFactory = new \Helhum\ConfigLoader\ConfigurationReaderFactory($confDir); $configLoader = new \Helhum\ConfigLoader\ConfigurationLoader( [ $configReaderFactory->createReader($confDir . '/default.php'), $configReaderFactory->createReader($confDir . '/' . $context . '.php'), $configReaderFactory->createReader('PREFIX', ['type' => 'env']), $configReaderFactory->createReader($confDir . '/override.php'), ] ); $config = $configLoader->load();
Basic usage cached
$context = 'production'; $confDir = '/path/to/conf'; $cacheDir = '/path/to/cache'; $cacheIdentifier = md5($context . filemtime('/path/to/.env')); $configReaderFactory = new \Helhum\ConfigLoader\ConfigurationReaderFactory($confDir); $configLoader = new \Helhum\ConfigLoader\CachedConfigurationLoader( $cacheDir, $cacheIdentifier, function() use ($confDir, $context, $configReaderFactory) { return new \Helhum\ConfigLoader\ConfigurationLoader( [ $configReaderFactory->createReader($confDir . '/default.php'), $configReaderFactory->createReader($confDir . '/' . $context . '.php'), $configReaderFactory->createReader('PREFIX', ['type' => 'env']), $configReaderFactory->createReader($confDir . '/override.php'), ] ); } ); $config = $configLoader->load();
Using processors
It is possible to add one or more processors to the config loader.
$context = 'production'; $confDir = '/path/to/conf'; $configReaderFactory = new \Helhum\ConfigLoader\ConfigurationReaderFactory($confDir); $configLoader = new \Helhum\ConfigLoader\ConfigurationLoader( [ $configReaderFactory->createReader($confDir . '/config.php'), ], [ new \Helhum\ConfigLoader\Processor\PlaceholderValue(), ] ); $config = $configLoader->load();
Advanced usage
Instead of hard coding which configuration sources should be included, it is possible to include multiple sources from within one configuration file.
$context = 'production'; $confDir = '/path/to/conf'; $configReaderFactory = new \Helhum\ConfigLoader\ConfigurationReaderFactory($confDir); $configLoader = new \Helhum\ConfigLoader\ConfigurationLoader( [ $configReaderFactory->createRootReader($confDir . '/config.yaml'), ] ); $config = $configLoader->load();
The configuration file can then include an import section:
imports: - { resource: 'config.*.yml', type: glob } - { resource: 'env.yml' }
Feedback
Any feedback is appreciated. Please write bug reports, feature request, create pull requests, or just drop me a "thank you" via Twitter or spread the word.
Thank you!
统计信息
- 总下载量: 7.8M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 30
- 点击次数: 1
- 依赖项目数: 8
- 推荐数: 1
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2026-01-04