emo-ti-on/storekeeper

PHP 配置生成器

dev-master 2022-04-27 12:00 UTC

This package is auto-updated.

Last update: 2024-09-29 06:14:39 UTC


README

注意:README.md 由非英语母语者创建

配置

您必须设置文件夹,我们将在此文件夹中存储所有配置。

Simplify\Storekeeper\Config::setConfigFolder('/path/to/folder')

此外,您还可以选择地图的分隔符。

Simplify\Storekeeper\Config::setSeparator('.') // By default separator is "."

用法

创建 Simplify\Storekeeper\Config 的实例

$config = new Simplify\Storekeeper\Config('name_of_config');

如果您想在创建实例时存储一些数据在配置中

$data = [
    'data' => '2',
    'data2' => 1
];

$config = new Simplify\Storekeeper\Config('name_of_config', $data);

Storekeeper 会检查是否有以配置名称命名的文件存在。如果存在,则填充当前配置,否则保持为空。

现在您可以使用可用方法开始工作。

get(string $map = ''): mixed

通过 $map 搜索返回数据

示例

$config = new Simplify\Storekeeper\Config('name_of_config'),
    [
        'someData' => [
            'subData1' => true,
            'subData2' => 'data2'            
        ],
        'number' => 123
    ]
);

$data = $config->get('someData.subData1'); // Returns true
$data2 = $config->get('somData.subData2'); // Returns 'data2'
$data3 = $config->get('number'); // Returns 123

set(string $map, mixed $value): void

通过 $map 设置数据

示例

$config = new Simplify\Storekeeper\Config('name_of_config');

$config->set('str', '1234');
$config->set('number', 1234);
$config->set('somData.subData2', false);

注意!

所有数据都保存在全局值中

$config = new Simplify\Storekeeper\Config('name_of_config');
$sameConfig = new Simplify\Storekeeper\Config('name_of_config');

$config->set('foo', 'global value');

echo $sameConfig->get('foo'); // Output: 'global value'

contains(string $map): bool

检查配置键是否存在

示例

$config = new Simplify\Storekeeper\Config('name_of_config'), 
    [
        'existVal' => [
            'existsSubVal' => 'data'
        ]
    ]
);

$config->contains('existVal') // Returns true
$config->contains('existVal.existsSubVal') // Returns true
$config->contains('thisValueIsNotExists') // Returns false

unset(string $map): void

通过 $map 删除数据

示例

$config = new Simplify\Storekeeper\Config('name_of_config'), 
    [
        'someData' => [
            'subData1' => true,
            'subData2' => 'data2'            
        ],
        'number' => 123
    ]
);
$config->unset('someData')
$config->get('someData') // throws Exception 'Key someData does not exist'

reset()

将配置返回到初始状态

示例

$config = new Simplify\Storekeeper\Config('name_of_config'), 
    [
        'value1' => 'i\'am a string'
        'value2' => 97
    ]
);
$config->set('value1', 555)
$config->unset('value2')

print_r($config->get()) // Array (value1 => 555)

$config->reset()
print_r($config->get()) 
/* 
   Array (
       value1 => i'am a string
       value2 => 97
   )
 */

小心!!!

当您创建 Config 的实例时,它将当前状态保存到本地值。

$snake_config = new \Simplify\Storekeeper\Config('config'); // Saved state is []

$snake_config->set('foo', 1233); // Current state ['foo' => 1233]
echo $snake_config->get('foo') . PHP_EOL; // output 1233

$camelConfig = new \Simplify\Storekeeper\Config('config'); // Saved state ['foo' => 1233]

$camelConfig->set('foo', 12); // Current state ['foo' => 12]
echo $camelConfig->get('foo') . PHP_EOL; // output 12

$camelConfig->reset(); // Current state ['foo' => 1233]
echo $snake_config->get('foo') . PHP_EOL; // output 1233

$snake_config->reset();

$camelConfig->get('foo'); // Exception: value: 'foo' Does not exists in ...

truncate(): void

从当前配置中删除所有数据

示例

$config = new Simplify\Storekeeper\Config('name_of_config'), 
    [
        'value1' => 'i\'am a string'
        'value2' => 97
    ]
);

print_r($config->get()) 
/* 
   Array (
       value1 => i'am a string
       value2 => 97
   )
 */
 
$config->truncate();

print_r($config->get()); // Array ()

delete(): void

从配置文件夹中删除文件

save(): void

将数据存储到配置文件夹中的文件(文件名与配置名称相同)

isEmpty(): bool

检查当前配置是否为空

isNotExists(): bool

检查配置文件是否存在