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 友好的方式发布我的.envvendor: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 生成 .env 文件?

宅基地上的 Laravel 7,带有 npm 错误“cross-env”

如何使用 PHP 执行 sed -i '/^MAIL_DRIVER=/s/=.*/=log/' .env 之类的东西来更新 laravel dotenv 文件中的变量值

Laravel .env 多环境配置文件的使用

laravel / lumen 访问中间件中的 .env 值