最近刚入职,用的微擎也没什么新技术,刚逛论坛发现了刚开始开发Laravel容易忽略的问题,记录一下
2023-05-19 08:27:05 2025-02-09 22:49:19 PHP 118 views
***### 在使用Laravel框架中应避免在 app/config/ 目录外使用 env 函数
在 Laravel 中,如果执行
php aritisan config:cache
命令 (生产环境为了提高配置加载速度),Laravel 将会把app/config
目录下的所有配置文件 “编译” 整合成一个缓存配置文件到bootstrap/cache/config.php
,每个配置文件都可以通过 env 函数读取环境变量,这里是可以读取的。但是一旦有了这个缓存配置文件,在其他地方使用 env 函数是读取不到环境变量的,所以返回 null.
public function bootstrap(Application $app)
{
if ($app->configurationIsCached()) {
return;
}
$this->checkForSpecificEnvironmentFile($app);
try {
$this->createDotenv($app)->safeLoad();
} catch (InvalidFileException $e) {
$this->writeErrorAndDie($e);
}
}
因此,在配置文件即
app/config
目录下的其他地方,读取配置不要使用env
函数去读环境变量,这样你一旦执行php artisan config:cache
之后,env
函数就不起作用了。所有要用到的环境变量,在app/config
目录的配置文件中通过env
读取,其他地方要用到环境变量的都统一读配置文件而不是使用env
函数读取。
更多注意事项可在这里查看 https://www.kancloud.cn/wenshunbiao/wenshunbiao/1106788