dida/config

A Config Component.

v1.0.0 2021-04-04 19:10 UTC

This package is auto-updated.

Last update: 2024-04-21 22:17:17 UTC


README

Dida\Config 是一个配置组件,可以方便地对 App 的配置项进行各种操作。它是 宙品科技 开源的 Dida 框架 的一个功能组件。

API

  • Config::has($key) -- 检查是否有指定 key 的配置。
  • Config::set($key, $value) -- 设置一个配置项。
  • Config::get($key, $default = null) -- 获取指定配置项,如果配置项不存在,返回 default 值。
  • Config::remove($key) -- 删除一个配置项。
  • Config::keys() -- 获取所有配置项的 keys。
  • Config::sortKeys() -- 对配置项按 key 排序。
  • Config::clear() -- 删除所有配置项。
  • Config::merge(array $confs) -- 批量合并一个配置项数组。
  • Config::getKeysByGroup($group) -- 获取指定 group 的所有 keys。
  • Config::getItemsByGroup($group) -- 获取指定 group 的所有配置项。
  • Config::groupExpand($group, array $items) --将给出的 items 扩展到指定的 group 上。
  • Config::groupPack($group) -- 对给出的 group 进行压缩,返回压缩后的配置数组。
  • Config::groupClear($group) -- 删除指定 group 的所有配置项。
  • Config::load($filepath, $group = null) -- 从文件中载入配置。

使用说明

  1. 一个 load() 可以读取的配置文件示例:

    <?php
    return [
        "foo"            => 1,
        "bar"            => 2,
        "mysql.host"     => "localhost",
        "mysql.user"     => "root",
        "mysql.password" => "password",
    ];
    
  2. merge() 调用的是 array_merge() 函数。

    $confA = ["db.user"=>'root', "a"=>1, "b"=>2];
    
    Config::merge($confA);
    
    // 运行后,结果如下:
    // Config::$items = [
    //   "db.user" => 'root',
    //   "a" => 1,
    //   "b" => 2,
    // ]
    
    $confB = ["a"=>9, "c"=>3];
    
    Config::merge($confB);
    
    // 运行后,结果如下:
    // Config::$items = [
    //   "db.user" => 'root',
    //   "a" => 9,
    //   "b" => 2,
    //   "c" => 3,
    // ]
    
  3. groupExpand()groupPack() 是一对逆过程:

    $confA = [""=>0, "a"=>1, "b"=>2, "c"=>3];
    
    // 将$confA扩展到db组里面
    Config::groupExpand("db", $confA);
    
    // 运行后,结果如下:
    // Config::$items = [
    //   "db" => 0,
    //   "db.a" => 1,
    //   "db.b" => 2,
    //   "db.c" => 3,
    // ]
    
    // 把db组的所有配置项打包出来
    $confB = Config::groupPack("db");
    
    // 运行后,结果如下:
    // $confB = [""=>0, "a"=>1, "b"=>2, "c"=>3]
    

感谢

版权声明

版权所有 (c) 上海宙品信息科技有限公司。
Copyright (c) 2017-2021 Zeupin LLC. http://zeupin.com

源代码采用 MIT 授权协议。
Licensed under The MIT License.

如需在您的项目中使用,必须保留本源代码中的完整版权声明。
Redistributions of files MUST retain the above copyright notice.