我一直在尝试按照Symfony中的指南为Drupal 8.x上的模块实现一个前动作中间件。但是,从事件中获取$controller
变量时,似乎始终是Closure
对象,我无法使用instanceof
来标识控制器。我找到了两种方法,每种方式都有一些优点和缺点。
ControllerResolver
来获取控制器,而不是从事件中获取控制器。这似乎给了我正确的控制器。但是,HttpKernel
的{{1}}似乎与Drupal的某些内部冲突有关,Drupal打破了Drupal的其他部分。至于Drupal的ControllerResolver
,我似乎无法弄清楚需要在构造函数中传递的参数。ControllerResolver
的静态变量。但是,我不知道这是否是可以通过的唯一类型的对象,使这个解决方案有风险。在Drupal中有更多惯用的方法吗?你对此有何看法?