17
Июля
2023
г.
Laminas config aggregator
Содержание
Библиотека Laminas config aggregator нужна для создания конфигурации приложения, например для дальнейшего использования в контейнере внедрения зависимостей.
//composer require laminas/laminas-config-aggregator
// Базовое использование
// Папка с конфигурационными файлами которые возвращают массив конфигурации, склеиваем их в один, возвращаем итоговый массив
use Laminas\ConfigAggregator\ConfigAggregator;
use Laminas\ConfigAggregator\PhpFileProvider;
// В config aggregator передаются массивы, которые будут склеены правильным способом
$config = new ConfigAggregator([
function () {
return ['db3' => 678];
},
new PhpFileProvider('dir/*.php'),
new PhpFileProvider('dir/*.php'),
]);
// Повторяющиеся ключи будут перезаписаны, что дает возможность удобно управлять конфигурацией например в зависимости от переменных окружения
$config->getMergedConfig(); // Итоговый массив
// Кеширование массива
// Так же есть возможность включить кеш конфигурации, имеет место если Конфиг очень большой, меняется нечасто
// В массиве нужен ключ config_cache_enabled
// Можно сделать следующем образом
$config = new ConfigAggregator([
new \Laminas\ConfigAggregator\ArrayProvider([ConfigAggregator::ENABLE_CACHE => true]),
], '/tmp/config-cache.php');
// Для того чтобы сбросить кеш просто удалите файл. Удобно если конфигурацию не нужно часто менять, еще и работает быстрее
Преимущество данной библиотеки состоит в корректном перезаписывании многомерных массивов, чего добиться встроенными функциями php сложно, например использованием array_merge
или array_replace_recursive
Применений данной библиотеки можно найти массу.
Возник вопрос или предложение пиши на почту
alexsey_89@bk.ru или в
Телеграмм канал
Дата публикации: 17
Июля
2023
г.