Symfony : File .env.local не учитывается

#symfony #environment-variables

#symfony #переменные среды

Вопрос:

У меня проблема с моим проектом, с самого начала кажется, что .env.local не учитывается. У меня есть мой .env вот так:

 APP_ENV=
APP_SECRET=secret

###> symfony/mailer ###
# MAILER_DSN=smtp://localhost
MAILER_USER=someaddress@mail.tld
MAILER_URL=sendmail://localhost
###< symfony/mailer ###

###> symfony/ldap ###
LDAP_HOST=
LDAP_PASS=
LDAP_BASE_DN=
LDAP_SEARCH_DN=
LDAP_UID_KEY=sAMAccountName
LDAP_FILTER=(amp;(objectClass=Person)({uid_key}={username}))
###< symfony/ldap ###


 DATABASE_URL=mysql://root:root@127.0.0.1:3306/intranet?serverVersion=mariadb-10.3.22amp;charset=utf8
  

И затем я хочу переопределить некоторые переменные, поэтому я сделал это в my .env.local:

 APP_SECRET=secret

###> symfony/ldap ###
LDAP_HOST="blabla"
LDAP_PASS="blabla"
LDAP_BASE_DN="blabla"
LDAP_SEARCH_DN="blabla"
###< symfony/ldap ###
  

Но когда я пытаюсь получить доступ к этим переменным, я получаю один из my .env. Я тестировал различные вещи, такие как .env без нужных мне переменных, и определял их только в .env.local, но затем я получаю сообщение об ошибке:

 Environment variable not found: "LDAP_HOST".
  

Я действительно понятия не имею, почему это не работает. При попытке отладки большое спасибо

Комментарии:

1. Для начала ваш .env.local должен быть копией .env. Слияние не происходит. Если .env.local существует, то он используется, а .env игнорируется. Так что исправьте это и посмотрите, поможет ли это. Если нет, то, возможно, временно попробуйте полностью удалить .env и посмотреть, что произойдет. Вам не нужно этого делать, но, возможно, какая-то другая часть вашего кода пытается получить к ней прямой доступ. Что является нет-нет. Также подумайте о создании нового тестового проекта и просто немного поэкспериментируйте и посмотрите, сможете ли вы воспроизвести проблему.

2. Я много чего перепробовал, создав новый .env, удалив .env => получил сообщение об ошибке «нужен .env», я попытался сделать копию .env и назвать его .env.local и просто изменить одни данные, а затем получить к ним доступ, но я продолжал получать данныеиз .env. Я не обращаюсь к нему в своем коде. Я работаю над проектом с коллегами, у каждого из нас есть локальный с нашим кодом и все, их .env.local работает отлично, но не мой, и мы не понимаем, почему он не работает.

3. Иногда, когда вы «пробуете много вещей», вы можете незаметно ввести ошибку, и ее может быть трудно отследить. Я не вижу в вашем вопросе достаточно информации, чтобы помочь. Опять же, я бы предложил создать новый проект Symfony и установить только пакет LDAP. Затем скопируйте .env в .env.local и посмотрите, что произойдет. Я также предполагаю, что все это происходит в среде разработки.

4. Да, конечно, я в среде разработки. Несмотря на то, что я запускаю новый проект и .env.local работает, я не понимаю, как это может помочь мне решить эту проблему, когда она не в той же среде / проекте ^^ Но я постараюсь

5. @Cerad Я попробовал, и это отлично сработало в новом проекте.