kariricode/configurator

为 KaririCode 框架提供灵活且高效的配置管理组件,为 PHP 应用程序提供强大的配置处理能力。

v1.0.0 2024-09-28 20:43 UTC

This package is auto-updated.

Last update: 2024-09-28 20:46:54 UTC


README

en pt-br

Docker Makefile PHP PHPUnit

为 KaririCode 框架提供灵活且强大的配置管理组件,为 PHP 应用程序提供强大的配置处理能力。

特性

  • 支持多种配置文件格式(PHP、JSON、YAML)
  • 分层配置结构
  • 轻松访问配置值
  • 配置验证
  • 合并多个配置来源的策略
  • 可扩展的加载器系统,用于自定义配置来源
  • 安全处理敏感配置数据

安装

要安装 KaririCode 配置组件,请运行以下命令

composer require kariricode/configuration

基本用法

步骤 1:设置配置文件

在支持的格式(PHP、JSON 或 YAML)中创建您的配置文件。例如

// config/app.php
<?php
return [
    'name' => 'MyApp',
    'version' => '1.0.0',
    'debug' => true,
];
// config/database.json
{
  "host": "localhost",
  "port": 3306,
  "username": "root",
  "password": "secret"
}
# config/cache.yaml
driver: redis
host: localhost
port: 6379

步骤 2:初始化配置管理器

在应用程序的引导文件中设置配置管理器

<?php

require_once __DIR__ . '/../vendor/autoload.php';

use KaririCode\Configurator\Configuration;
use KaririCode\Configurator\Loader\JsonLoader;
use KaririCode\Configurator\Loader\PhpLoader;
use KaririCode\Configurator\Loader\YamlLoader;

$config = new Configuration();

$config->registerLoader(new PhpLoader());
$config->registerLoader(new JsonLoader());
$config->registerLoader(new YamlLoader());

// Load configuration files
$config->load(__DIR__ . '/../config/app.php');
$config->load(__DIR__ . '/../config/database.json');
$config->load(__DIR__ . '/../config/cache.yaml');

步骤 3:访问配置值

加载配置后,您可以通过以下方式访问值

// Get a single configuration value
$appName = $config->get('app.name');
$dbHost = $config->get('database.host');
$cacheDriver = $config->get('cache.driver');

// Check if a configuration key exists
if ($config->has('app.debug')) {
    // Do something
}

// Get all configuration values
$allConfig = $config->all();

步骤 4:使用特定环境的配置

您可以加载特定环境的配置文件

$environment = getenv('APP_ENV') ?: 'production';
$config->load(__DIR__ . "/../config/{$environment}/app.php");

高级用法

自定义加载器

您可以创建特定文件类型的自定义加载器

use KaririCode\Configurator\Contract\Configurator\Loader;

class XmlLoader implements Loader
{
    public function load(string $path): array
    {
        // Implementation for loading XML files
    }

    public function getTypes(): array
    {
        return ['xml'];
    }
}

$config->registerLoader(new XmlLoader());

合并策略

组件支持不同的合并策略以组合配置

use KaririCode\Configurator\MergeStrategy\StrictMerge;

$config = new Configuration(
    mergeStrategy: new StrictMerge()
);

验证

组件包括配置值的自动验证

use KaririCode\Configurator\Validator\AutoValidator;

$config = new Configuration(
    validator: new AutoValidator()
);

测试

要运行 KaririCode 配置组件的测试,请使用 PHPUnit

make test

测试覆盖率

make coverage

许可证

本项目受 MIT 许可证的许可 - 有关详细信息,请参阅LICENSE 文件。

支持和社区

鸣谢

  • KaririCode 框架团队和贡献者。
  • PHP 社区,感谢他们持续的支持和灵感。

由 KaririCode 团队用 ❤️ 构建。赋予开发者构建更强大和灵活的 PHP 应用程序的能力。

由 Walmir Silva 维护 - walmir.silva@kariricode.org