私はSymfony Flexを使って新鮮なSymfonyインストールを行い、新しいスケルトンは次のSymfony 4ディレクトリ構造に属します。Symfony4構造のパラメータファイルで自分の環境変数を取得するにはどうしたらいいですか?
私はサードパーティ製の最初のバンドルを追加して設定します:HWIOAuthBundle。このバンドルは、2つの秘密情報を使用してTwitter経由で接続するために使用されます。
とconsumer_secret
をconfig/packages/hwi_oauth.yaml
ファイルに宣言します。
hwi_oauth:
firewall_names: [secured_area]
resource_owners:
twitter:
type: twitter
client_id: XXXXXMyIdXXXXX
client_secret: XXXXXMyTopSecretKeyXXXXX
私のアプリケーションはうまくいきます。しかし、私はギターに自分の秘密をコミットすることはできません!私は新しいDotEnvパッケージについてSymfony4 best practicesを読ん
hwi_oauth:
firewall_names: [secured_area]
resource_owners:
twitter:
type: twitter
client_id: '%twitter_consumer_id%'
client_secret: '%twitter_consumer_secret%'
:
は、私はこの1つのようなhwi_oauth.yaml
ファイルを持っていると思います。
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).
のベストプラクティスで示唆したように、私は.env
ファイルにこれらの2行を追加します。
TWITTER_CONSUMER_ID=XXXXXMyIdXXXXX
TWITTER_CONSUMER_SECRET=XXXXXMyTopSecretKeyXXXXX
しかし、私はこのエラーが発生しました:
You have requested a non-existent parameter "twitter_consumer_id".
私は%kernel.twitter_consumer_id%
、%env.twitter_consumer_id%
、%env(TWITTER_CONSUMER_ID)%
で試してみましたこれ以上成功することはありません。
An exception has been thrown during the rendering of a template ("Environment variable not found: "TWITTER_CONSUMER_ID".").
がどのように私はhwi_oauth.yaml
などのパラメータ・ファイルに私のENV変数を取得することができます。
最後のテストでは、このエラーメッセージを返すのですか?
あなたは 'DotEnv'コンポーネントで' .env'をロードしていますか? – bishop
ありがとう@bishop! 'public \ index.php'は' if(!getenv( 'APP_ENV')){(新しいDotenv()) - > load(__ DIR __。 '/ .. /。env')を含みます。 } 'この' .env'はロードされませんでした。それは今働きます!しかし、このチェックは生産に '.env'を使わないようにすることです。私はdevでそれを使用する方法を理解していないし、私のprodを保護する...これは、 'getenv( 'APP_ENV')' in_array(getenv( 'APP_ENV')、 'dev'、 'test']) '? –