Как отменить регистрацию или переопределить зарегистрированный ServiceProvider во время выполнения из пакета?

Я регистрирую свои собственные пользовательские классы FormBuilder и HtmlBuilder, которые расширяют собственные аналоги Laravel в пакете композитора. Тем не менее, мне было трудно заставить их распознаваться в моем приложении во время выполнения без удаления вручную. 'Illuminate\Html\HtmlServiceProvider' из массива провайдеров в конфиге app.php.

Мне нужно как-то добиться этого во время выполнения.

  1. Есть ли способ переопределить зарегистрированных поставщиков услуг во время выполнения?
  2. Если нет, есть ли способ удалить зарегистрированных поставщиков услуг во время выполнения?
  3. Есть ли лучший / более эффективный / более эффективный метод для достижения этой цели?

1 ответ

Весь смысл этого массива в том, что вы можете заменить зависимости своими... Идите и измените / удалите его:)

Если вы хотите удалить услугу у поставщика услуг, просто сделайте ее нулевой. Или замените его своим сервисом.

app()->instance(SomeClass::class, null);
Другие вопросы по тегам