Laravel:在发布之前永久覆盖 Laravel 包中依赖项的配置

Laravel: Permanently override config of dependencies from a Laravel Package before publishing them

我正在开发一个 Laravel 包,它安装了一个依赖列表。 依赖项有自己的配置文件,安装后发布。

我们需要的是自动(避免手动操作)修改这些依赖项的配置文件,通过我们的包 before/after 发布它们并将它们放置在 app/config.

我找到了一些解决方案,例如在 Package 服务提供商的注册方法中使用 mergeConfigFrom()。但它本身并不修改文件内容,只是加载合并后的配置。 我们需要根据自己开发的包修改配置文件的内容,这样就不需要在包安装后手动修改配置文件了。

例如,我们安装 Laravel Horizo​​n 作为我们包的依赖项。 Horizo​​n 在 app/config 中发布了一个名为 horizon.php 的配置文件。我们需要在发布该配置文件之前或之后自动修改 app/config/horizon.php 的一些值。

任何帮助将不胜感激。 谢谢:)

这目前是不可能的。查看laravel框架源代码中的Illuminate\Foundation\Console\VendorPublishCommand

  1. 最好的方法是通过在同一个文件上发布它来完全替换包中的 horizon.php 配置。
  2. 或者您可以编写自定义命令将此数据注入 horizon.php
  3. 您可以在 laravel 框架中发布 PR 以允许这样做。并希望他们能接受你的 PR。