Мне интересно, как я могу условно добавить промежуточное ПО в другое промежуточное ПО в моем проекте Laravel.
Я заметил, что Laravel Nova добавляет промежуточное программное обеспечение таким образом в NovaCoreServiceProvider
$this->app->make(HttpKernel::class)->pushMiddleware(ServeNova::class);
Я пытаюсь выполнить sh это вне области действия поставщика услуг, где у вас нет доступа к $this->app
, поэтому я попробовал это так:
$container = app();
$container->make(HttpKernel::class)->pushMiddleware(MyMiddleware::class);
Но, похоже, это не работает. Можно ли положить в стек промежуточное ПО sh из промежуточного ПО? Если так, как я могу это сделать?
Единственная причина, по которой я делаю это таким образом, а не просто регистрирую это обычно, состоит в том, чтобы предотвратить ненужную загрузку ресурсов (которые промежуточное программное обеспечение отвечает за запуск).