【发布时间】:2018-03-05 22:33:45
【问题描述】:
我正在使用 Laravel 5.2,我按照官方文档中的建议使用 php artisan config:cache 以提高速度。
您可能知道,此命令使 .env 文件变量无法直接访问(您可以使用 php artisan tinker 对其进行测试),因此所有对 env() 和 getenv() 函数的调用都必须替换为 @代码中的987654326@,除了config文件夹中的文件。执行此命令后,env('APP_ENV') 等调用返回 NULL。
在我的项目中,我使用 google-auth-library-php 连接到 Google Cloud。不幸的是,在 CredentialsLoader.php 文件中有一个对函数 getenv(self::ENV_VAR) 的调用,该函数试图获取 Google 凭据文件的路径。当我运行命令php artisan config:cache时,无法从.env文件中读取路径,无法完成连接。
我可以看到 3 种方式继续:
- 忘记运行
php artisan config:cache。 - 在这里询问是否有人知道如何将 Google 凭据文件的路径指定为包的任何函数的参数。
- (请原谅我,上帝)更正 CredentialsLoader.php 文件(
getenv()为config()),运行命令并在存储库中跟踪此文件,然后此更改将在每个团队成员拉取时传播。
提前谢谢你!
【问题讨论】:
-
从 env 加载的是
CredentialsLoader::fromEnv。在 CredentialsLoader 上使用另一种方法是有意义的,或者使用配置中的设置手动创建凭据。 -
嗨!现在已经 3 年了... :) 你的解决方案是什么?
-
好吧,实际上我是用一个特定的配置完成的...... Nignx + php 和 fastcgi。我会回答,因为如果将来有人会再次访问这个问题,也许会有所帮助
标签: php laravel google-cloud-storage gcp google-cloud-sdk