decodelabs / dovetail
全面配置解决方案
v0.2.8
2024-09-04 20:58 UTC
Requires
- php: ^8.1
- decodelabs/archetype: ^0.3
- decodelabs/atlas: ^0.12
- decodelabs/coercion: ^0.2.7
- decodelabs/collections: ^0.9
- decodelabs/exceptional: ^0.4.4
- decodelabs/fluidity: ^0.3.4
- decodelabs/lucid: ^0.4.7
- decodelabs/veneer: ^0.11.6
- vlucas/phpdotenv: ^5.5
Requires (Dev)
- decodelabs/genesis: ^0.9
- decodelabs/phpstan-decodelabs: ^0.6.6
README
PHP全面配置解决方案
Dovetail为PHP应用程序提供了一种简单、灵活且强大的管理配置数据的方法。
在 DecodeLabs博客 上获取新闻和更新。
安装
通过Composer安装
composer require decodelabs/dovetail
使用方法
导入
Dovetail使用Veneer在DecodeLabs\Dovetail
下提供一个统一的界面。您可以通过这个静态界面访问所有主要功能,而不会影响测试和依赖注入。
环境变量
Dovetail使用vlucas/phpdotenv从项目根目录下的.env
文件中加载环境变量。当您首次访问Env外观时,它会自动加载。
use DecodeLabs\Dovetail; $dbHost = Dovetail::envString('DB_HOST', 'localhost'); // String $dbPort = Dovetail::envInt('DB_PORT', 3306); // Int $debug = Dovetail::envBool('DEBUG', false); // Bool $test = Dovetail::env('TEST', 'default'); // Mixed
配置
Dovetail提供结构以允许从任何自定义位置加载配置文件,将其加载到Repository
容器树对象中,并以特定领域内的Config
对象的形式展示,然后可以提供根据您的需求定制的数据访问方法。
敏感数据应从.env
文件加载,而不是存储在配置文件中 - 使用Dovetail::env*()
方法或$_ENV
将这些值注入到配置中。
# config/database.php use DecodeLabs\Dovetail; return [ 'adapter' => 'mysql', 'host' => $_ENV['DB_HOST'] ?? 'localhost', // or 'port' => Dovetail::envInt('DB_PORT', 3306), ];
# app/Config/Database.php use DecodeLabs\Dovetail\Config; use DecodeLabs\Dovetail\ConfigTrait; class Database implements Config { use ConfigTrait; public function getAdapter(): string { return $this->data['adapter'] ?? 'mysql'; } public function getHost(): string { return $this->data['host'] ?? 'localhost'; } public function getPort(): int { return $this->data['port'] ?? 3306; } }
use DecodeLabs\Dovetail; $config = Dovetail::load('database'); $adapter = $config->getAdapter(); // 'mysql'
许可
Dovetail采用专有许可证。有关完整的许可证文本,请参阅LICENSE。