Laravel:在发布之前永久覆盖 Laravel 包中依赖项的配置
Laravel: Permanently override config of dependencies from a Laravel Package before publishing them
我正在开发一个 Laravel 包,它安装了一个依赖列表。
依赖项有自己的配置文件,安装后发布。
我们需要的是自动(避免手动操作)修改这些依赖项的配置文件,通过我们的包 before/after 发布它们并将它们放置在 app/config.
我找到了一些解决方案,例如在 Package 服务提供商的注册方法中使用 mergeConfigFrom()
。但它本身并不修改文件内容,只是加载合并后的配置。
我们需要根据自己开发的包修改配置文件的内容,这样就不需要在包安装后手动修改配置文件了。
例如,我们安装 Laravel Horizon 作为我们包的依赖项。 Horizon 在 app/config 中发布了一个名为 horizon.php
的配置文件。我们需要在发布该配置文件之前或之后自动修改 app/config/horizon.php 的一些值。
任何帮助将不胜感激。
谢谢:)
这目前是不可能的。查看laravel框架源代码中的Illuminate\Foundation\Console\VendorPublishCommand
。
- 最好的方法是通过在同一个文件上发布它来完全替换包中的
horizon.php
配置。
- 或者您可以编写自定义命令将此数据注入
horizon.php
- 您可以在 laravel 框架中发布 PR 以允许这样做。并希望他们能接受你的 PR。
我正在开发一个 Laravel 包,它安装了一个依赖列表。 依赖项有自己的配置文件,安装后发布。
我们需要的是自动(避免手动操作)修改这些依赖项的配置文件,通过我们的包 before/after 发布它们并将它们放置在 app/config.
我找到了一些解决方案,例如在 Package 服务提供商的注册方法中使用 mergeConfigFrom()
。但它本身并不修改文件内容,只是加载合并后的配置。
我们需要根据自己开发的包修改配置文件的内容,这样就不需要在包安装后手动修改配置文件了。
例如,我们安装 Laravel Horizon 作为我们包的依赖项。 Horizon 在 app/config 中发布了一个名为 horizon.php
的配置文件。我们需要在发布该配置文件之前或之后自动修改 app/config/horizon.php 的一些值。
任何帮助将不胜感激。 谢谢:)
这目前是不可能的。查看laravel框架源代码中的Illuminate\Foundation\Console\VendorPublishCommand
。
- 最好的方法是通过在同一个文件上发布它来完全替换包中的
horizon.php
配置。 - 或者您可以编写自定义命令将此数据注入
horizon.php
- 您可以在 laravel 框架中发布 PR 以允许这样做。并希望他们能接受你的 PR。