bretrzaun/settings

dev-master 2021-06-27 15:57 UTC

This package is auto-updated.

Last update: 2024-08-27 22:43:56 UTC


README

Latest Stable Version Build Status License

管理应用程序设置。

安装

通过 Composer 安装

composer require bretrzaun/settings

使用方法

1. 创建设置实例

$settings = new BretRZaun\Settings\Settings();

2. 填充值

use BretRZaun\Settings\Value\SimpleValue;

$value1 = new SimpleValue(1, 'Value 1');
$settings->add($value1);
$value2 = new SimpleValue(2, 'Value 2');
$settings->add($value2);

SimpleValue 类存储任何键/值信息。

3. 持久化值

要持久化设置,请使用实现 BretRZaun\Settings\Storage\StorageInterface 的存储类。目前支持以下存储

  • 文件存储
  • MongoDb 存储

示例 1 - 保存设置

$storage = new FileStorage('setting.json');
$storage->save($settings);

示例 2 - 加载设置

$storage = new FileStorage('setting.json';
$settings = $storage->load(Settings::class);

将设置加载到给定设置类的实例中。

高级使用

年度设置

每年具有不同值的设置可以使用 AnnualSettings 类和 AnnualValue 类来管理。

$first2019 = new AnnualValue(1, 'First 2019', 2019);
$second2019 = new AnnualValue(2, 'Second 2019', 2019);
$first2020 = new AnnualValue(1, 'First 2020', 2020);
$second2020 = new AnnualValue(2, 'Second 2020', 2020);

$settings = new AnnualSettings([$first2019, $second2019, $first2020, $second2020]);

要获取 2019 年的所有设置,使用

$settings->findByYear(2019);

-> [$first2019, $second2019]

要获取某一年份的特定键

$settings->getByYearAndKey(2019, 2);

-> $second2019

要获取某一年份的特定键 - 并回退到最后一个存在的年份

$settings->getLastByYearAndKey(2021, 1);

-> $first2020

注意:由于 2021 年没有条目,它会回退直到找到具有请求键的年份。