承接 balinomad/simple-config 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

balinomad/simple-config

最新稳定版本:v1.0.0

Composer 安装命令:

composer require balinomad/simple-config

包简介

Simple library to create and modify a configuration structure.

README 文档

README

Unit tests Code analysis Coverage Status License: MIT

1. What Is It

Simple config is a class to work with configuration settings. It helps you to perform actions like add, remove, check, append, subtract etc. by using dot notation keys.

2. What Is It Not

This library does not read the filesystem or other environment settings. To use an .env file to feed Simple config, use it together with phpdotenv or other similar library.

3. Installation

This package can be installed through Composer.

composer require balinomad/simple-config

4. Usage

The Config object is immutable. This means methods like with, without, append, and merge do not change the original object; they return a new, modified Config instance.

use BaliNomad\SimpleConfig\Config;

$options = [
    'allowed_pets' => ['dog', 'cat', 'spider'],
    'cat' => [
        'name' => 'Mia',
        'food' => ['tuna', 'chicken', 'lamb'],
    ],
    'dog' => [
        'name' => 'Bless',
        'color' => [
            'body' => 'white',
            'tail' => 'black',
        ]
    ],
    'has_spider' => true
];

$config = new Config($options);

// with(), without(), etc. return a NEW Config instance.
$newConfig = $config
    ->with('has_spider', false)                 // Set a value
    ->without('dog.color.tail')                 // Remove a value
    ->append('cat.food', 'salmon')              // Add an item to an array
    ->subtract('allowed_pets', 'spider');       // Remove an item from an array

// Get values using dot notation
$catFood = $newConfig->get('cat.food');
// Returns: ['tuna', 'chicken', 'lamb', 'salmon']

// Check if a key exists
$hasTailColor = $newConfig->has('dog.color.tail');
// Returns: false

// The original $config object remains unchanged
$originalSpiderSetting = $config->get('has_spider');
// Returns: true

// Get the entire configuration as an array
$arrConfig = $newConfig->toArray();

5. API Reference

Method Attributes Returns Description
constructor ?array $config, int $cleaningFlags self Creates a new Config instance.
with $key, $value self Returns a new instance with a value set.
without $key self Returns a new instance with a key removed.
get $key, $default mixed Retrieves a value using dot notation.
has $key bool Checks if a key exists.
append $key, $value self Returns a new instance with a value appended to an array.
subtract $key, $value self Returns a new instance with a value removed from an array.
merge $config, $method self Returns a new instance merged with another configuration.
split $key self Returns a new instance containing only a subset of the config.
toArray - array Returns the entire configuration as an array.
count - int Counts all leaf configuration values. Non-associative arrays are counted as a single leaf.
getIterator - Traversable Gets an iterator for the top-level items.
offsetExists $offset bool Implements ArrayAccess. Checks if a key exists (e.g., isset($config['app.key'])).
offsetGet $offset mixed Implements ArrayAccess. Gets a value (e.g., $config['app.key']).

Note: Modifying a Config object via array access (e.g., $config['key'] = 'value') is not permitted and will throw a LogicException. Use the with() and without() methods instead.

统计信息

  • 总下载量: 16
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-07-02