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
Requires
- codememory/caching: ^1.1
- codememory/console: ^1.0
- codememory/fs: ^1.1
- codememory/global-config: ^1.1
- codememory/markup: ^2.0
- codememory/singleton: ^1.0
- codememory/support: ^1.2
Requires (Dev)
- symfony/var-dumper: ^5.2
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"