Задать вопрос
@hermaeus_seeker

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

Потребность: Инструмент, похожий на миграции, для 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 массива, но возможно уже есть готовые инструменты, в т.ч. от фреймворка, чтобы не писать велосипед.
  • Вопрос задан
  • 76 просмотров
Подписаться 2 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
У вас должно быть два файла params.php и params-local.php. Они мержаться. Второй под gitignore. Поэтому когда ваш коллега добавит изменения в params.php он появиться в конфиге при этом данные из локально перезапишут основной.
Локальный меняется только на сервере ручками, в то время как дефолтный летает с каждым git pull.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы