helhum/config-loader
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!
helhum/config-loader 适用场景与选型建议
helhum/config-loader 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 8.58M 次下载、GitHub Stars 达 30, 最近一次更新时间为 2016 年 04 月 30 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 helhum/config-loader 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 helhum/config-loader 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 8.58M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 30
- 点击次数: 18
- 依赖项目数: 9
- 推荐数: 1
其他信息
- 授权协议: GPL-2.0-or-later
- 更新时间: 2016-04-30