是否有一个特定的文件或目录建议用于存储API密钥?我想把我的密钥从代码库中取出,但不确定放在哪里。
以下是适用于较新版本Laravel的更新回答。
首先,在您的.env
文件中设置凭据。通常,您会希望以服务的名称为前缀,因此在此示例中,我将使用Google Maps。
GOOGLE_KEY=secret_api_key
那么,请查看config/services.php
- 这是我们可以将环境变量映射到应用程序配置的地方。您会看到一些现成的示例。您可以在服务名称下添加其他配置,并将其指向环境变量。
'google' => [
'key' => env('GOOGLE_KEY'),
],
那么当你需要在应用程序中访问此密钥时,可以通过应用程序配置获取它。
// Through a facade
Config::get('services.google.key');
// Through a helper
config('services.google.key');
确保不要仅通过应用程序使用env('GOOGLE_KEY')
- 通过应用程序配置更具性能优势,因为它被缓存 - 特别是如果您在部署过程中调用php artisan config:cache
。
.env.php
文件,该文件返回环境变量数组。<?php
return array(
'SECRET_API_KEY' => 'PUT YOUR API KEY HERE'
);
getenv('SECRET_API_KEY');
.gitignore
中。您可以参考Laravel存储库中的.gitignore
。 - Dwight