f3ath/pimple-config

Pimple的简单多环境配置,支持密钥存储

1.0.0 2017-03-07 09:48 UTC

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));

更多示例请参阅 单元测试

贡献

请积极贡献!