Как использовать преобразователь массива `env` в конфигурации?

#symfony #configuration #yaml #symfony4

#symfony #конфигурация #yaml #symfony4

Вопрос:

Я пытаюсь установить параметр ips для контроля доступа в Symfony с помощью .env файлов. Я использую 4.2.4 .

Это выдержка из моей конфигурации:

 security:
     access_control:
         -
             ips: '%env(csv:VAR)%'
  

Это выдержка из моих переменных окружения:

 VAR=172.16.0.0/12,127.0.0.1
  

И это исключение:

Исключение InvalidTypeException

Недопустимый тип для пути «security.access_control.0.ips.0». Ожидалось одно из «bool», «int», «float», «string», но получил «array».

Я понимаю, что ...ips.0 это элемент ips и, следовательно, он не должен быть array . Но я не понимаю, почему он пытается присвоить весь массив not ips . В чем моя ошибка здесь?

Ответ №1:

Это потому, что пакет безопасности обертывает строки в массив, смотрите здесь. Когда вы измените это, вы столкнетесь с проблемами, подобными here. Итак, на данный момент кажется, что нет возможности получить это.