f3ath / pimple-config
Pimple的简单多环境配置,支持密钥存储
1.0.0
2017-03-07 09:48 UTC
Requires
- pimple/pimple: ^3
Requires (Dev)
- phpunit/phpunit: ^6
- squizlabs/php_codesniffer: ^2.8
This package is auto-updated.
Last update: 2024-09-05 05:48:33 UTC
README
安装
composer install f3ath/pimple-config
配置结构
特定环境配置
配置是一个名为 <environment_name>.php
的文件,该文件返回一个数组
<?php // dev.php return [ 'debug' => true, 'foo' => [ 'bar' => 'baz' ] ];
为了减少重复,这里有一种“继承”的方式
<?php // stage.php return array_replace_recursive(require __DIR__ . '/common.php', [ // inherit from common config 'debug' => false, ]);
密钥配置
将敏感数据(如密码)存储在代码库之外是一种良好的实践。最简单的实现是在服务器上直接存储此类文件。这些文件可以直接编辑,因此它们不应该为php脚本,因为很容易不小心删除 <?php
头部并暴露其内容。在这种情况下,自然的选择是JSON。PimpleConfig支持一个特殊的 secret_json
键来包含此类文件。
<?php // prod.php return array_replace_recursive(require __DIR__ . '/common.php', [ // inherit from common config 'secret_json' => '/etc/my_application/secret.json', 'debug' => false, ]);
服务
Pimple服务在 services
目录中的文件集进行配置。在您的配置中定义
<?php // common.php return [ 'services' => [ 'application' => __DIR__ . '/services/application.php', 'storage' => __DIR__ . '/services/storage.php', 'controllers' => __DIR__ . '/services/controllers.php', ], ];
服务配置是一个返回特殊函数的php脚本
<?php // services/application.php return function (\Pimple\Container $container, array $config, string $env) { $container['hello'] = function () use ($config, $env) { // here you create and return a service the Pimple way }; };
注册配置
<?php $pimple = new \Pimple\Container(); $env_name = 'prod'; $config_root = '/path-to-config'; $pimple->register(new \F3\PimpleConfig\Config($config_root, $env_name));
更多示例请参阅 单元测试。
贡献
请积极贡献!