Drupal 8.x перед действием middleware - PullRequest
0 голосов
/ 22 мая 2018

Я пытался реализовать промежуточное программное обеспечение перед действием для модуля в Drupal 8.x, следуя этому руководству из Symfony .Тем не менее, при получении переменной $controller из события, это, кажется, всегда объект Closure, который я не могу использовать instanceof для идентификации контроллера.Я нашел 2 способа сделать это с некоторыми плюсами и минусами на каждом.

  1. Вместо того, чтобы получить контроллер из события, я могу получить запрос вместо этого, затем использовать ControllerResolver, чтобы получить контроллер,Это, кажется, дает мне правильный контроллер.Тем не менее, HttpKernel ControllerResolver, похоже, конфликтует с некоторыми внутренностями Drupal, что разрушает другие части Drupal.Что касается ControllerResolver от Drupal, я не могу понять аргументы, которые должны быть переданы в конструкторы.
  2. Используя PHP Reflection, я могу получить статические переменные Closureгде находится объект контроллера.Тем не менее, я не знаю, является ли это единственным типом объекта, который может быть передан, что делает это решение рискованным.

Есть ли более идиоматический способ сделать это в Drupal?Что ты думаешь по этому поводу?

...