我有一个想要包装到 Laravel 包中的库。
我的库使用两个配置:config.php
一些非敏感设置的公共.env
配置和敏感凭据的私有配置。
我想vendor:publish
为最终用户配置我的配置。对公众来说似乎很好,config.php
但如何以.env
Laravel 友好的方式发布我的?我没有找到任何方法来做到这一点vendor:publish
。
应用程序的.env
文件主要用于将敏感信息排除在配置文件和其他经常提交源代码控制的资源之外。它不打算以任何方式发布。
您可以做的是创建一个单独的配置文件,其中包含一些合理的默认值预设,同时允许用户覆盖它们。例如:
// my-config.php
return [
'user_model => env('MY_USER_MODEL', App\User::class),
...
];
如果需要,他们可以实现自己的 User 模型或省略在自己的 env 文件中设置它并默认为您指定的实现。
您会在提供角色、权限、租赁等的软件包中经常看到这种方法。