Очистка начальных параметров, установленных Incenteev ParameterHandler - PullRequest
0 голосов
/ 28 февраля 2020

Мне только что передали существующий PHP проект, использующий пакет Incenteev ParamemeterHandler , и я только что запустил composer install, который задал мне кучу вопросов.

Кажется, это было неправильно принимать значения по умолчанию для некоторых из них, и поскольку повторный запуск команды больше не спрашивал меня, я подумал, что мне нужно отредактировать app/config/parameters.yml, чтобы исправить это. Оказывается, в следующий раз, когда я запустил composer install, он переписал новые значения!

Это было неожиданно, но я предполагаю, что предыдущие значения хранятся где-то и повторно используются для создания этого файла. Теперь мне интересно, как я могу «очистить» эти значения и / или исправить свой неправильный ответ? Я попытался выполнить поиск для поля (image_upload_dir в моем случае), но в этом случае были только обращения к другим файлам yml, поэтому я понятия не имею, где он скрывает мои кэшированные ответы.

1 Ответ

0 голосов
/ 28 февраля 2020

Даже для не PHP программиста исходный код для ParameterHandler очень прост для чтения - основная масса сделана из 160 строк с очень удобочитаемым PHP. Я нашел свой ответ там: он использует файл шаблона с именем app/config/parameters.yml.dist (расширение dist является ключевым) для значений по умолчанию.

Если там уже есть файл parameters.yml, он будет запрашивать только те значения, которые отсутствуют. Смысл ответа на мой вопрос просто удалить файл. Я также мог бы удалить поля, на которые мне нужно будет ответить снова, но это гораздо менее интуитивно понятно, чем простое ручное редактирование файла.

Причина, по которой я думал, что мои значения были перезаписаны, заключалась в том, что файл dist была строка с этим содержанием image_upload_dir: ~. Я прочитал это, чтобы означать, что значение было домашним каталогом, обычное значение символа тильды на единицах. Поэтому я был удивлен, увидев сгенерированный файл с соответствующей строкой image_upload_dir: null. Оказывается, я не был знаком с basi c YAML: символ тильды, ~, означает nil или «пусто», что означает, что null идеально соответствует этому.

...