codememory/config

Library from codememory to work with configuration

Installs: 133

Dependents: 20

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:libary

v2.0 2021-09-04 15:26 UTC

This package is auto-updated.

Last update: 2024-12-04 22:11:40 UTC


README

Установка

composer require codememory/config

Обязательно выполняем следующие команды, после уставки пакета

  • Создание глобальной конфигурации, если ее не существует
    • php vendor/bin/gc-cdm g-config:init
  • Merge всей конфигурации
    • php vendor/bin/gc-cdm g-config:merge --all

Папка .config хранит в себе глобальную конфигурацию пакетов codememory

Обзор global config

{
  "configuration": {
    "pathWithConfigs": "configs/",  // Путь к папке со всеми режимами и их конфигами
    "mode": "development"          // Активный режим конфигурации
  }
}

Использование

Test конфиг

# Конфигурация должна начинаться с ключа, который соответствует с именем файла
test:
  # Бинды, которые будут доступны во всех файла конфигурации
  binds:
    configPath: "configs"
  paths:
    config: "%configPath%"

Получение данных

<?php

use Codememory\Components\Configuration\Configuration;

require_once 'vendor/autoload.php';

// Открывает определенный конфиг
$testConfig = Configuration::getInstance()->open('test');

// Получаем значение по ключу
echo $testConfig->get('paths.config'); // codememory/configs

Создание Custom режима

use Codememory\Components\Configuration\Modes\AbstractMode;

class MyMode extends AbstractMode
{

    public function getModeName() : string
    {
    
        return 'myMode';
      
    }
    
    public function getSubdirectory() : string
    {
    
        return '/my_mode';
        
    }
    
    public function getConfigsWithData() : array
    {
    
        // Обработчик получение всей конфигурации для данного режима
    
    }

}

Configuration::getInstance()->addModeHandler('MyMode');

// Осталось в глобальной конфигурации у опции "configuration -> mode"
// поставить значение "myMode"