Laravel:通过发布第三方包来更新 .env 文件
Posted
技术标签:
【中文标题】Laravel:通过发布第三方包来更新 .env 文件【英文标题】:Laravel: Update .env file by publishing a third-party package 【发布时间】:2018-07-22 14:48:30 【问题描述】:我有一个库,我想将它包装到 Laravel 包中。
我的库使用两个配置:公共 config.php
用于一些非敏感设置,.env
私有配置用于敏感凭据。
我想vendor:publish
我的最终用户配置。公开config.php
似乎很好,但如何以 Laravel 友好的方式发布我的.env
? vendor:publish
找不到任何方法。
【问题讨论】:
你不应该那样做。要求包用户将信息添加到.env
文件。
@AlexeyMezenin 说了什么
@AlexeyMezenin 所以,没有办法自动完成吗?只是想让用户更轻松。
【参考方案1】:
应用程序的.env
文件主要用于将敏感信息排除在配置文件和其他经常提交源代码控制的资源之外。它不打算以任何方式发布。
您可以做的是创建一个单独的配置文件,其中包含一些合理的默认值预设,同时允许用户覆盖它们。例如:
// my-config.php
return [
'user_model => env('MY_USER_MODEL', App\User::class),
...
];
如果需要,他们可以实现自己的用户模型或省略在自己的 env 文件中设置它并默认为您指定的实现。
您会在提供角色、权限、租赁等的软件包中经常看到这种方法。
【讨论】:
以上是关于Laravel:通过发布第三方包来更新 .env 文件的主要内容,如果未能解决你的问题,请参考以下文章
laravel 5.8 在 getenv 上返回 false
宅基地上的 Laravel 7,带有 npm 错误“cross-env”
如何使用 PHP 执行 sed -i '/^MAIL_DRIVER=/s/=.*/=log/' .env 之类的东西来更新 laravel dotenv 文件中的变量值