bretrzaun / settings
dev-master
2021-06-27 15:57 UTC
Requires
- symfony/options-resolver: ^4.0||^5.0
Requires (Dev)
- mongodb/mongodb: ^1.6
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-08-27 22:43:56 UTC
README
管理应用程序设置。
安装
通过 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 年没有条目,它会回退直到找到具有请求键的年份。