Link Search Menu Expand Document
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 г.

Содержание


Наверх

Последнее изменение страницы: 22 Июля 2023 г.