kariricode / configurator
为 KaririCode 框架提供灵活且高效的配置管理组件,为 PHP 应用程序提供强大的配置处理能力。
v1.0.0
2024-09-28 20:43 UTC
Requires
- php: ^8.3
- kariricode/contract: ^2.6
- kariricode/data-structure: ^1.0
- symfony/yaml: ^6.3
Requires (Dev)
- enlightn/security-checker: ^2.0
- friendsofphp/php-cs-fixer: ^3.58
- mockery/mockery: ^1.6
- nunomaduro/phpinsights: ^2.11
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.10
This package is auto-updated.
Last update: 2024-09-28 20:46:54 UTC
README
为 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 文件。
支持和社区
- 文档: https://kariricode.org
- 问题跟踪器: GitHub Issues
- 社区: KaririCode Club 社区
- 专业支持: 如需企业级支持,请联系我们support@kariricode.org
鸣谢
- KaririCode 框架团队和贡献者。
- PHP 社区,感谢他们持续的支持和灵感。
由 KaririCode 团队用 ❤️ 构建。赋予开发者构建更强大和灵活的 PHP 应用程序的能力。
由 Walmir Silva 维护 - walmir.silva@kariricode.org