decodelabs/dovetail

全面配置解决方案

v0.2.8 2024-09-04 20:58 UTC

This package is auto-updated.

Last update: 2024-09-04 20:59:23 UTC


README

PHP from Packagist Latest Version Total Downloads GitHub Workflow Status PHPStan License

PHP全面配置解决方案

Dovetail为PHP应用程序提供了一种简单、灵活且强大的管理配置数据的方法。

DecodeLabs博客 上获取新闻和更新。

安装

通过Composer安装

composer require decodelabs/dovetail

使用方法

导入

Dovetail使用VeneerDecodeLabs\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