在 Laravel 5 中动态编辑 .env 是个好主意吗?
Posted
技术标签:
【中文标题】在 Laravel 5 中动态编辑 .env 是个好主意吗?【英文标题】:Is it a good idea to edit .env dynamically in Laravel 5? 【发布时间】:2016-12-05 00:31:51 【问题描述】:我正在构建一个管理面板,因此我需要通过前端界面为最终用户配置我的 Laravel 5 应用程序的一些核心设置(如 smtp 设置等)。
我最初的想法是在缓存的同时使用数据库作为设置存储(以避免每次访问配置值时都发出数据库调用)。但是,似乎Facades are loaded after config files,因此下面的代码不起作用:
<?php
// app/config/custom_settings.php
return [
'key' => Cache::get('key');
];
因此,我正在考虑以编程方式将用户的配置直接写入 .env 文件。这是一个好主意,还是将来会变成令人头疼的问题?
【问题讨论】:
您应该将它们作为平面文件存储在storage/app
中。您可以将它们读入 Config、覆盖值或编写配置处理程序。处理程序可以为您提供一些优势,例如验证设置。
【参考方案1】:
为什么不将其存储在数据库中、用户表或其他相关表中?
我认为 .env 文件用于全局设置(数据库、邮件配置、缓存配置...),但它没有考虑存储最终用户配置。
【讨论】:
我将更新问题以解决这些问题。但是,当我正在构建管理面板时,我需要让用户能够修改特定于应用程序的配置,例如 smtp 和其他配置。以上是关于在 Laravel 5 中动态编辑 .env 是个好主意吗?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel/Lumen 5.3.3:在迁移中覆盖 env 值
如何为 dotenv 获取特定于环境的 .env 文件(在 Laravel 5 中)