Symfony Flex kullanarak yeni bir Symfony yüklemesi yaptım ve yeni iskelet sonraki Symfony 4 dizin yapısına ait.Symfony4 yapısındaki ortam değişkenlerimi parametre dosyasında nasıl geri alabilirim?
İlk üçüncü taraf paketini ekleyip yapıyorum: HWIOAuthBundle. Bu paket, iki gizli bilgi kullanarak Twitter üzerinden bağlanmak için kullanılır.
ve consumer_secret
adreslerimi config/packages/hwi_oauth.yaml
dosyasında bildiriyorum.
hwi_oauth:
firewall_names: [secured_area]
resource_owners:
twitter:
type: twitter
client_id: XXXXXMyIdXXXXX
client_secret: XXXXXMyTopSecretKeyXXXXX
Uygulamam düzgün çalışıyor. Ama sırlarımı github'a işleyemem!
hwi_oauth:
firewall_names: [secured_area]
resource_owners:
twitter:
type: twitter
client_id: '%twitter_consumer_id%'
client_secret: '%twitter_consumer_secret%'
Yeni DotEnv paketi hakkında Symfony4 best practices okuyun:
Ben böyle bir hwi_oauth.yaml
dosya istiyorum. en iyi uygulamalar da önerildiği gibi
Using environment variables, while far from being perfect, have many benefits over what we currently do. Environment variables are a more "standard" way of managing settings that depend on the environment (no need to manage a parameters.yml.dist for instance).
, bu iki çizgi .env
dosyayı ekleyin:
TWITTER_CONSUMER_ID=XXXXXMyIdXXXXX
TWITTER_CONSUMER_SECRET=XXXXXMyTopSecretKeyXXXXX
Ama bu hatayla karşılaştı:
You have requested a non-existent parameter "twitter_consumer_id".
Ben %kernel.twitter_consumer_id%
ile çalıştı, %env.twitter_consumer_id%
, %env(TWITTER_CONSUMER_ID)%
daha fazla başarı ile.
An exception has been thrown during the rendering of a template ("Environment variable not found: "TWITTER_CONSUMER_ID".").
nasıl hwi_oauth.yaml
gibi bir parametre dosyasında benim ENV değişkenleri alabilirsiniz:
son testi bu hata mesajını dönüyor?
(new DotEnv())->load(__DIR__ . '/../.env');
Sen evreleme, gelişimi üzerine ortam değişkenleri gizli anahtarlarını koymak planlamalısınız ve:
Eğer 'DotEnv' bileşeni ile' .env' yükleme var mı? – bishop
Teşekkürler @bishop! 'Public \ index.php', 'if (! Getenv (' APP_ENV ')) {(yeni Dotenv()) -> load (__ DIR __.'/.. /. Env '); } 've bu' .env' yüklenmedi. Şuan çalışıyor ! Fakat kontrol, üretimde '.env' kullanılmamasını sağlamaktır. Bunu nasıl kullanacağımı anlamıyorum ve hala ürünümüzü koruyorum ... '' getenv '' ('APP_ENV') 'i bu testin yerine getirmesi güvence altına alındı: 'in_array (getenv (' APP_ENV '), [ 'dev', 'test']) '? –