我在.env
文件中有一个付款网关的秘密测试密钥。
APP_TIMEZONE = 'Africa/Lagos'
APP_PAYSTACK_KEY = sk_test_b6c0b4925403blablabla
原因是其他从事该项目的人可以使用自己的测试密钥。因此,在付款控制器中,我会像下面这样获得此密钥的值:
"authorization: Bearer " .env('APP_PAYSTACK_KEY' , 'sk_test_b6c0b4925403blablabla')
在部署期间,我打算运行config:cache
,以使Laravel在获得所需的配置设置上不会花费很多时间。但是从Laravel文档中:
如果在部署期间执行config:cache命令 过程中,请确保您仅拨打
env
功能从您的配置文件中。一旦配置 已被缓存,.env
文件将不会加载,并且所有对env
函数将返回null。
所以我的问题是如何在配置文件中设置此APP_PAYSTACK_KEY
以及如何在应用程序中的任何位置检索它?
答案 0 :(得分:1)
您可以将paystack
添加到您的config/services.php
文件中:
<?php
return [
/*
|--------------------------------------------------------------------------
| Third Party Services
|--------------------------------------------------------------------------
|
| This file is for storing the credentials for third party services such
| as Stripe, Mailgun, SparkPost and others. This file provides a sane
| default location for this type of information, allowing packages
| to have a conventional place to find your various credentials.
|
*/
// ...
'paystack' => [
'key' => env('APP_PAYSTACK_KEY', 'sk_test_b6c0b4925403blablabla'),
],
];
然后在您的控制器上调用config()
帮助方法,而不是env()
:
"authorization: Bearer " .config('services.paystack.key')
现在,您可以安全地通过调用php artisan config:cache
来缓存配置。