Заданный вопрос исключительно из разряда "а можно ли?". Такой подход не применяется в проде и полностью согласен, что так делать нет смысла, а если он появляется, то, что-то не так. И да, это конфиг Yii2.
Как случилось, что вылез вопрос.
Есть API запрос, результатом которого является изменение конфига. Самое важное - конфиг в течение этого запроса больше не "перечитывается". Задача запроса - только изменить. Нет необходимости его читать второй (и более) раз и снова как-то оповещеать об этом Yii. Запрос изменил конфиг и умер, всё! Больше он ничего не делает. И больше ему делать не надо. А когда придёт следующий запрос, он каскадно соберёт конфиг и получит новые изменения.
Запрос же надо протестировать, правильно (TDD и всё такое)? Тест получает конфиг, смотрит, что ничего нет, запускает запрос, снова смотрит, что появилось. Тест был сделан простой проверкой вхождения подстроки в текст конфига даже без require. И в require не было необходимости. Даже не думал о нём изначально. Тесты ведь должны быть короткими, с как можно простой логикой, так? Во всяком случае, я в этом убеждён. И подумалось, что было бы прикольно, если бы require легко и просто мог прочитать файл заново. Это съэкономило бы 3 строки кода. Я знал, что require/include мне не помогут и оставил как есть. Всё работает: и апи запрос, и тест.
Но возник вопрос: а может ли так PHP вообще? Например, у также интерпритируемого Python есть отдельная функция, которая может прямо на ходу единого запроса исполнения снова прочитать файл с кодом и получить новые значения переменных в нём. Я правда, не могу предположить, в каких случаях такая функция может пригодиться. Скорей всего, потому что плохо знаю Python.
Максим Тимофеев, возможно, но где именно? субд, сервера, либы дат?
компонент formatter в Yii2 имеет одинаковые настройки - dd.MM.yyyy HH:mm, но это не мешает локально сохранять нормально.
это не подходит и в этом-то и проблема, т.к. вебпак соберет с какими-то конкретными значениями, которые должны отличаться.
если сказать вебпаку собрать некий единый /js/script.js с NODE_ENV=production со значениями боевого сервера, то он и соберёт с этими значениями. и открыв локальный сайт с подключенным только что собранным /js/script.js, то работать будет неправильно, т.к. собранный файл будет обращаться к боевому серверу, а нужно к локальному.
этот готовый /js/script.js должен быть одинаков для всех серверов
подскажите, после каких процедур туда попадает релиз?