Как отменить регистрацию или переопределить зарегистрированный ServiceProvider во время выполнения из пакета?
Я регистрирую свои собственные пользовательские классы FormBuilder и HtmlBuilder, которые расширяют собственные аналоги Laravel в пакете композитора. Тем не менее, мне было трудно заставить их распознаваться в моем приложении во время выполнения без удаления вручную. 'Illuminate\Html\HtmlServiceProvider'
из массива провайдеров в конфиге app.php.
Мне нужно как-то добиться этого во время выполнения.
- Есть ли способ переопределить зарегистрированных поставщиков услуг во время выполнения?
- Если нет, есть ли способ удалить зарегистрированных поставщиков услуг во время выполнения?
- Есть ли лучший / более эффективный / более эффективный метод для достижения этой цели?
1 ответ
Весь смысл этого массива в том, что вы можете заменить зависимости своими... Идите и измените / удалите его:)
Если вы хотите удалить услугу у поставщика услуг, просто сделайте ее нулевой. Или замените его своим сервисом.
app()->instance(SomeClass::class, null);