Проверка добавления новых параметров в enviroments Yii2?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
hermaeus.seeker
Сообщения: 14
Зарегистрирован: 2022.02.11, 17:42

Проверка добавления новых параметров в enviroments Yii2?

Сообщение hermaeus.seeker »

Потребность: Инструмент, похожий на миграции, для params-local: отслеживает появились ли новые параметры в enviroments по отношению к текущему файлу, и если да, как минимум, оповещает об этом в консоли.

Иллюстрация проблемы:
Допустим, имеем следующий вид: common/config/params-local.php:

Код: Выделить всё

<?php
return [
    'telegram.token' => '5111777220:0fWm_G2eNeWillyJN2ekBram42mkkET-ZAHAA',
    'telegram.incidentChat' => 516764370486187,
    'telegram.botName' => 'bot_father',
];
Наш коллега добавил новый функционал, и с ним — новый локальный параметр: 'style.newYear', который он добросовестно указал в enviroment-файлах: environments/dev/common/config/params-local.php:

Код: Выделить всё

<?php
return [
    'telegram.token' => '', //  Telegram Bot API Token,
    'telegram.incidentChat' => '', // ID of TG chat. Please do not forget to add a bot to this chat
    'telegram.botName' => '', // Bot username without "@"

    'style.newYear' => 1, // Enable or disabled new year design
];
Нам же — нужно этот новый параметр добавить себе.

Проблема: Но наш проект уже поднят, поэтому повторный запуск yii init — да, добавит новый параметр, но и сбросит к значениям по-умолчанию уже заполненные.

Получается, что нашему коллеге нужно оповестить нас о новом параметре, а нам его уже добавить в свой loc-файл, чтобы ничего не затерлось и наш common/config/params-local.php имел такой вид:

Код: Выделить всё

<?php

return [
    'telegram.token' => '5111777220:0fWm_G2eNeWillyJN2ekBram42mkkET-ZAHAA',
    'telegram.incidentChat' => 516764370486187,
    'telegram.botName' => 'bot_father',

    'style.newYear' => 1,
];
Цель: Автоматизировать данный процесс. Думаю, достаточно будет сверять 2 массива, но возможно уже есть готовые инструменты, в т.ч. от фреймворка, чтобы не писать велосипед.
Ответить