Laravel 配置:获取环境变量
说明
本文介绍多种方法获取环境变量的方法,来从 .env
里获取内容。
获取环境变量
方法一、Laravel 封装的辅助函数:
env('APP_DEBUG')
方法二、第三方包 phpdotenv 自带的辅助函数:
getenv('APP_DEBUG')
方法三、传统的 PHP 环境变量数组 $_ENV
$_ENV['APP_DEBUG']
方法四、服务器信息数组
$_SERVER['APP_DEBUG']
命令行测试下:
$ php artisan tinker
>>> env('APP_DEBUG')
=> true
>>> getenv('APP_DEBUG')
=> "true"
>>> $_ENV['APP_DEBUG']
=> "true"
>>> $_SERVER['APP_DEBUG']
=> "true"
>>> config('app.debug')
=> true
config:cache
的情况
如果在部署过程中执行
config:cache
命令来缓存配置信息,那你应该确保 只从配置文件内部 调用env
函数。一旦配置被缓存,.env
文件将不再被加载,所有对env
函数的调用都将返回null
。
退出上面的 artisan tinker
命令行,我们先执行以下命令来缓存配置信息:
$ php artisan config:cache
重新进入 Tinker ,再输入同样上面的内容,会输出:
$ php artisan tinker
>>> env('APP_DEBUG')
=> null
>>> getenv('APP_DEBUG')
=> false
>>> $_ENV['APP_DEBUG']
PHP Notice: Undefined index: APP_DEBUG in Psy Shell code on line 1
>>> $_SERVER['APP_DEBUG']
PHP Notice: Undefined index: APP_DEBUG in Psy Shell code on line 1
>>> config('app.debug')
=> true
结论
请使用 正确的方式 来设置环境变量,并使用 config()
来读取,确保只从配置文件内部调用 env
函数。
如果你运行了上面的 config:cache
缓存了配置,可以使用以下命令清除缓存:
$ php artisan config:clear
短小精悍