我正在使用 Laravel 5.2,并按照官方文档的建议执行
正如您所知,此命令会使 .env 文件中的变量直接无法访问(您可以使用
在我的项目中,我使用 google-auth-library-php 连接到 Google Cloud。不幸的是,在 CredentialsLoader.php 文件中有一个调用函数
我看到有三种方法可以继续:
php artisan config:cache
命令以提高速度。正如您所知,此命令会使 .env 文件中的变量直接无法访问(您可以使用
php artisan tinker
进行测试),因此除了 config 文件夹中的文件之外,所有对 env()
和 getenv()
函数的调用都必须在代码中替换为 config()
。执行此命令后,像 env('APP_ENV')
这样的调用将返回 NULL。在我的项目中,我使用 google-auth-library-php 连接到 Google Cloud。不幸的是,在 CredentialsLoader.php 文件中有一个调用函数
getenv(self::ENV_VAR)
,试图获取 Google 凭据文件的路径。由于我运行了 php artisan config:cache
命令,因此无法从 .env 文件中读取该路径,导致连接无法完成。我看到有三种方法可以继续:
- 忘记运行
php artisan config:cache
。 - 在此询问是否有人知道如何将 Google 凭据文件的路径指定为包中任何函数的参数。
- (请原谅我,上帝)更正 CredentialsLoader.php 文件(将
getenv()
更改为config()
),运行命令并在存储库中跟踪此文件,然后当团队成员拉取时,此更改将传播到每个人。
CredentialsLoader::fromEnv
从环境中加载。最好在 CredentialsLoader 上使用另一种方法,或者手动使用配置中的设置创建凭据。 - sisve