在 dev
Symfony 3.4 应用程序的环境,我试图将凭据存储为环境变量。我无法让它工作,我无法弄清楚缺少什么。这就是我所拥有的:
在 app\config\.env
我定义了一个 API key ,如下所示:
GOOGLE_DEVELOPER_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
在
app\config\services.yml
我有:parameters:
google.developer.key: "%env(GOOGLE_DEVELOPER_KEY)%"
在我的一个 Controller 中,我想将此参数传递给一个对象,如下所示:
$client = new \Google_Client();
$client->setDeveloperKey($this->getParameter('google.developer.key'));
对我来说,这个设置看起来不错,但是当我尝试运行它时,我得到一个
EnvNotFoundException
带有以下消息:Environment variable not found: "GOOGLE_DEVELOPER_KEY".
当我把 key 放进
app\config\services.yml
直接,它工作得很好:parameters:
google.developer.key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
(但出于各种原因,这不是我想要的。)
我清除了
dev
缓存,重新启动 Web 服务器,阅读相关的 Symfony 文档(我认为),但没有运气。我想我错过了一步,但我不知道那会是什么。任何提示将不胜感激。
最佳答案
Symfony 3.4 不会自动加载 .env
文件。您必须修改您的 app_dev.php
加载文件:
use Symfony\Component\Dotenv\Dotenv;
...
$dotenv = new Dotenv();
$dotenv->load(__DIR__.'/../app/config/.env');
关于symfony - 如何在 Symfony 3.4 中的 Controller 中获取环境参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50335804/