Всем привет!
Недавно создавал тему с демонстрацией своей реализации функции для сохранение массивов в файлы php.
Решил пойти немножко дальше, и написать небольшую библиотеку/пакет для работы с конфигами.
Установка:
С помощью composer: composer require mex-vision/phpconfig
Инициализация:
Возможности:
1. Автозагрузка конфигов с папки, возможность указать суффикс файлов для фильтрации, например .cfg (site.cfg.php).
2. Удобное чтение конфигов, перемещение по ключам массива через точку и возможность указать параметр по умолчанию, который будет возвращен в случае отсутствия требуемого ключа в массиве. Первым ключом является название файла, без учета суффикса и формата (site.cfg.php). Например:
3. Добавление/изменение конфигов, например:
4. Сохранение конфигов обратно в файлы:
5. Неограниченное кол-во источников шаблонов для работы с разными директориями вашего проекта и обращение к ним через указанный неймспейсинг:
Сcылка на GitHub:
Ссылка на Packagist:
Недавно создавал тему с демонстрацией своей реализации функции для сохранение массивов в файлы php.
Решил пойти немножко дальше, и написать небольшую библиотеку/пакет для работы с конфигами.
Установка:
С помощью composer: composer require mex-vision/phpconfig
Инициализация:
PHP:
use PhpConfig\Config;
use PhpConfig\ConfigProvider;
// Инициализация провайдера.
$provider = new ConfigProvider('path/to/config', '.cfg');
// Инициализация конфигурации.
$config = new Config($provider);
Возможности:
1. Автозагрузка конфигов с папки, возможность указать суффикс файлов для фильтрации, например .cfg (site.cfg.php).
2. Удобное чтение конфигов, перемещение по ключам массива через точку и возможность указать параметр по умолчанию, который будет возвращен в случае отсутствия требуемого ключа в массиве. Первым ключом является название файла, без учета суффикса и формата (site.cfg.php). Например:
PHP:
$config->get('site.template', 'default');
// В качестве параметра по умолчанию может использовать callback функция
$result = $config->get('site.template', function(){
return 'default';
});
3. Добавление/изменение конфигов, например:
PHP:
// Запись в контейнер с конфигами.
$config->set('site.template', 'new_template');
// Есть возможность добавить сразу массив данных.
$config->set('site.template', [
'site_template' => 'new_site_template'
]);
4. Сохранение конфигов обратно в файлы:
PHP:
// Сохраняет конфиги обратно в 'path/to/config/site.cfg.php'.
$config->save('site');
// Сохраняет все конфиги.
$config->save();
5. Неограниченное кол-во источников шаблонов для работы с разными директориями вашего проекта и обращение к ним через указанный неймспейсинг:
PHP:
// Инициализируем новый провайдер:
$newProvider = new ConfigProvider('another/path/to/config', '.cfg');
// Добавляем его в наш объект и устанавливаем namespace для работы с ним:
$cfg->addProvider('another', $newProvider);
// Чтение:
$result = $config->get('@another.site.template');
// Редактирование:
$config->set('@another.site.template', 'new_template');
// Сохранение:
$config->save('@another.site');
// Сохранение всех конфигов с провайдера:
$config->save('@another');
Сcылка на GitHub:
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Ссылка на Packagist:
Вы не можете просматривать ссылку пожалуйста воспользуйтесь следующими ссылками Вход или Регистрация
Последнее редактирование: