Объединение параметров конфигурации в Symfony

В настоящее время я борюсь с обработкой конфигурации Symfony. Я хочу переопределить определенные вложенные параметры для среды разработки.

Мой config.yml содержит:

parameters:
    curl:
        return_transfer: true
        timeout: 25
        connect_timeout: 2

Мой config_dev.yml содержит:

parameters:
    curl:
        timeout: 60

Итак, я хочу переопределить только один (вложенный) параметр конфигурации «тайм-аут». Но я получаю этот (переопределенный) параметр только в контейнере среды разработки. Остальные (return_transfer и connect_timeout) исчезли. Похоже, что весь параметр config заменен, а не слит с config.yml. Как можно объединить эти параметры?

Спасибо!


person Jens Sieckmann    schedule 02.10.2017    source источник


Ответы (2)


Parameters — это одномерный массив. Это означает, что ваш параметр curl на самом деле является массивом значений, а не параметрами. Я считаю, что вы можете дублировать их только в своих параметрах разработки.

    return_transfer: true
    connect_timeout: 2
person svgrafov    schedule 02.10.2017
comment
Спасибо. Я считаю, что это все. Скопировать и вставить. - person Jens Sieckmann; 02.10.2017

Убедитесь, что в вашем config_dev.yml есть как минимум следующие строки:

imports: - { resource: '../common/config.yml' }

и убедитесь, что ваше приложение запускается в режиме --env=dev для загрузки config_dev.yml в стандартной настройке Symfony.

Для получения дополнительной информации см. также Документацию.

person LBA    schedule 02.10.2017
comment
Спасибо. Я уже сделал это и включил config.yml в config_dev.yml. И я использую фронт-контроллер app_dev.php. - person Jens Sieckmann; 02.10.2017
comment
Аналогичное описание проблемы найдено на drupal.org/node/2551009. - person Jens Sieckmann; 02.10.2017
comment
К сожалению, ответа нет. Это открытый вопрос. - person Jens Sieckmann; 02.10.2017
comment
иногда это ответ, к сожалению, см. также ответ @svgrafov - person LBA; 02.10.2017