Я был очень удивлен, когда не обнаружил на просторах GitHub и Bitbucket чего-то легкого, простого, и в того же время, мощного расширения для работы с конфигурацией приложения использующее в качестве хранилища параметров базу данных. Ведь не всегда хорошо хранить, например, название сайта в Yii:$app->params[]
. Этого, конечно, чаще всего достаточно, но иногда вот такие моменты, как с названием сайта/проекта ставят разработку на "паузу" и"заставляют" продумывать решение. Я и раньше делал нечто подобное для всех своих проектов, но в этот раз я решил, что стоит этому уделить максимум внимания и перестать таскать файлы из проекта в проекта, т.е. моей задачей стало "Сделать модуль конфигурации приложения для Yii2".
Самое главное:
- модуль не должен быть сложным
- не должен "заставлять" разработчика юзать непонятно что (только суть)
- легко расширяться, легко добавлять новые и удалять старые параметры
- прост в настройке и установке
- иметь консольные команды для инициализации и реконфигурации параметров
- мог самостоятельно создавать форму на основе заданных правил и типов полей, которые указываются для каждого параметра индивидуально
- иметь возможность разделять параметры на модули, где они используются
- кешировать все это дело для уменьшения нагрузки
- поддерживать различные значения параметров под каждую из локализации (относится к мультиязычности)
- не ограничивать какими-то рамками по использованию типу полей (все просто конфигурируется, будь то виджет или обычное текстовое поле)
И опираясь на эти условия появился на свет модуль yii2-config, который прост до безобразия.
А инструкция внутри. ;)
Ссылка на расширение: https://github.com/bupy7/yii2-config