sven/file-config

使用磁盘上的文件存储和读取配置值

v3.2.0 2022-02-05 14:37 UTC

README

file-config

文件配置

Latest Version on Packagist Total Downloads Software License Build Status StyleCI

此软件包提供了一种持久配置存储,以扁平文件的形式,并具有易于使用和理解的API。如果配置文件需要存储在用户区域,或者用户被允许手动编辑它,那么这将是完美的。

安装

您需要遵循几个简单的步骤来安装此软件包。

下载

通过 composer

$ composer require sven/file-config:^3.1

或将软件包添加到您的 composer.json 依赖项中,并在命令行上运行 composer update sven/file-config 来下载软件包

{
    "require": {
        "sven/file-config": "^3.1"
    }
}

可用驱动程序

您还可以编写自己的驱动程序来在自己的应用程序中使用。要编写自己的驱动程序,请参阅此文档中的 编写自己的驱动程序

使用方法

要开始使用,请构造一个 \Sven\FileConfig\Store 的新实例,并提供一个 \Sven\FileConfig\File 对象和一个实现 \Sven\FileConfig\Drivers\Driver 接口的对象。我们将使用预安装的 Json 驱动程序作为示例。

use Sven\FileConfig\File;
use Sven\FileConfig\Store;
use Sven\FileConfig\Drivers\Json;

$file = new File('/path/to/file.json');
$config = new Store($file, new Json());

您可以通过 getsetdelete 方法与您创建的 $config 对象进行交互。

示例

让我们看看一些示例。

从文件中获取值

要从配置文件中检索值,请使用 get 方法。假设我们的(美化后的)JSON配置文件如下所示

{
    "database": {
        "name": "test",
        "host": "localhost",
        "user": "admin",
        "password": "root"
    }
}

我们可以获取整个 database 数组

$config->get('database'); 
// ~> ['name' => 'test', 'host' => 'localhost', 'user' => 'admin', 'password' => root']

... 或者使用点表示法获取 database.host 属性

$config->get('database.host'); 
// ~> 'localhost'

如果无法找到给定的键,则默认返回 null。您可以通过向 get 方法传递第二个参数来覆盖此行为

$config->get('database.does_not_exist', 'default');
// ~> 'default'

在文件中设置值

要添加或更改配置文件中的值,您可以使用 set 方法。请注意,您必须调用 persist 方法来将您所做的更改写入文件。您还可以使用 fresh 方法来检索一个“新鲜”的 Store 实例,其中值将再次从文件中读取。

$config->set('database.user', 'new-username');
$config->persist();

$freshConfig = $config->fresh();
$freshConfig->get('database.user');
// ~> 'new-username'

在调用 persist 方法后,文件将看起来像这样

{
    "database": {
        "name": "test",
        "host": "localhost",
        "user": "new-username",
        "password": "root"
    }
}

从文件中删除条目

要从文件中删除配置选项之一,请使用 delete 方法。同样,别忘了调用 persist 将新内容写入文件!

$config->delete('database.user');
$config->persist();
{
    "database": {
        "name": "test",
        "host": "localhost",
        "password": "root"
    }
}

编写自己的驱动程序

您可能希望使用未包含在此软件包中的配置文件格式。幸运的是,编写驱动程序与将文件内容转换为PHP数组一样简单。

要创建驱动程序,创建一个实现 \Sven\FileConfig\Drivers\Driver 接口的类。然后向您的类中添加两个方法:importexportimport 方法将接收文件内容作为参数,并期望返回一个PHP数组。

export 方法正好相反:它接收一个PHP数组,并期望返回文件的新内容(作为字符串)。要详细了解这是如何工作的,请参阅预安装的 json 驱动程序

贡献

所有贡献(拉取请求、问题和功能请求)都受到欢迎。不过,请首先阅读CONTRIBUTING.md。查看贡献者页面了解所有贡献者。

许可证

sven/file-config采用MIT许可证(MIT)。有关更多信息,请参阅许可证文件