最近刚入职,用的微擎也没什么新技术,刚逛论坛发现了刚开始开发Laravel容易忽略的问题,记录一下
2023-05-19 08:27:05 2025-11-01 13:56:20 PHP 166 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