Symfony3.4アプリケーションのdev
環境で、資格情報を環境変数として保存しようとしています。私はそれを機能させることができず、何が欠けているのか理解できません。これは私が持っているものです:
app\config\.env
には、次のようにAPIキーが定義されています。
GOOGLE_DEVELOPER_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
app\config\services.yml
にあります:
parameters:
google.developer.key: "%env(GOOGLE_DEVELOPER_KEY)%"
私のコントローラーの1つで、このパラメーターを次のようなオブジェクトに渡したいと思います。
$client = new \Google_Client();
$client->setDeveloperKey($this->getParameter('google.developer.key'));
私には、そのセットアップは問題ないように見えますが、実行しようとすると、次のメッセージが表示されたEnvNotFoundException
が表示されます。
環境変数が見つかりません:「GOOGLE_DEVELOPER_KEY」。
キーをapp\config\services.yml
に直接入れると、問題なく機能します。
parameters:
google.developer.key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
(しかし、さまざまな理由から、それは私が望んでいることではありません。)
dev
キャッシュをクリアし、Webサーバーを再起動し、関連するSymfonyドキュメント(私は思う)を読みましたが、運がありませんでした。ステップが足りないと思いますが、それがどうなるかわかりません。ヒントをいただければ幸いです。
Symfony3.4は.env
ファイルを自動的にロードしません。ファイルをロードするには、app_dev.php
を変更する必要があります。
use Symfony\Component\Dotenv\Dotenv;
...
$dotenv = new Dotenv();
$dotenv->load(__DIR__.'/../app/config/.env');
コントローラでGoogle_Clientを初期化し、サービスコンテナを使用しないのはなぜですか?
参照: https://symfony.com/doc/3.4/service_container.html
その開発者キーを、キーdeveloper_keyを構成に持つ配列で渡すことができます。
Symphony v3.4 環境変数に関するドキュメント Webサーバーを使用して環境変数を構成することをお勧めします。
私のインストールはSymfonyv4であり、環境変数の構成に/.env
ファイルを使用しているため、これをテストできませんでした。
うまくいけば、これは何らかの形で役立ちます。