mazentouati/simple-2way-config

基于PHP的简单双向(读写)配置。

0.1.0 2018-11-13 14:51 UTC

This package is auto-updated.

Last update: 2024-09-18 18:23:38 UTC


README

GitHub (pre-)release Build Status Scrutinizer Code Quality Codecov branch StyleCI Maintainability Software License

Simple 2 way配置是一个基于PHP的读写配置库。它适用于需要使用文件系统存储首选项或配置的应用程序。

安装

我们建议通过composer 安装此包。

composer require mazentouati/simple-2way-config

用法

最简单的方法是通过包的工厂。工厂所需的参数是包含你的配置文件的目录的路径。

use MazenTouati\Simple2wayConfig\S2WConfigFactory;

$config = S2WConfigFactory::create( __DIR__ . '/demo' );

现在你可以使用点表示法 '{filename}.path.to.value' 访问配置值。

$host = $config->get('database.drivers.mysql.host');

注意:你的配置文件应该是一个基于数组的配置,请参考以下示例

API

配置API实现了S2WConfigInterface

以下示例将假设你已经将配置分配给名为$config的变量。

get(string $path, mixed $default = null)

使用点表示法路径获取值,按照此约定{filename}.path.to.value

$config->get('database.drivers.mysql.host');

你可以传递一个默认值,在找不到值时返回,默认返回null

echo $config->get('somewhere.where.are.you', 'here');
> here

set(string $path, mixed $value)

更新运行时配置中的值。

注意:如果找不到配置的文件名,它将在运行时实例中为该文件名创建一个新键。同样,对于值,如果点路径中缺少任何部分,它将在运行时实例中自动创建。

$config->set('database.drivers.mysql.host', '127.0.0.1');

sync(mixed $specificConfiguration = false)

同步运行时配置与源文件

$config->sync();

默认情况下,它将同步所有文件,尽管你可以传递一个特定的文件来同步

$config->sync('database');

使用sync将创建一个备份文件以保持安全,如果发生错误,将创建一个备份文件,名称为{original_file_name}.backup.php。如果备份失败(由于权限不足,它使用PHP copy函数),它将抛出一个异常S2WConfigException。为了避免任何丑陋的异常错误,你可以使用以下方式使用sync

use MazenTouati\Simple2wayConfig\S2WConfigException;
...
try {
    $config->sync();
} catch (S2WConfigException $e) {
    die($e->getMessage());
}

如果出现异常,此代码将打印如下内容:

配置同步无法为{ path_to_directory\database.php }保存备份,请检查你的权限

注意:此方法将同步您使用set方法创建的任何新值或更新值。即使您使用set将不存在的配置文件设置到运行时配置中,此方法也会为您创建该文件。如果您不想出现任何不希望的行为,请谨慎使用。

配置文件格式

配置文件必须是一个有效的PHP文件,并返回一个有效的数组。

<?php
return [
    'driver' => 'mysql',
    'drivers' => [
        'mysql' => [
            'host' => 'your_host',
            'dbname' => 'your_database',
            'user' => 'your_user',
            'password' => 'your_password',
        ],
    ],
];

贡献

请查看指南

许可协议

© MIT | 2018, mazentouati/simple-2way-config