动作中间件之前的Drupal 8.x.

时间:2018-05-22 16:55:41

标签: php symfony drupal-8

我一直在尝试按照Symfony中的指南为Drupal 8.x上的模块实现一个前动作中间件。但是,从事件中获取$controller变量时,似乎始终是Closure对象,我无法使用instanceof来标识控制器。我找到了两种方法,每种方式都有一些优点和缺点。

  1. 我可以获取请求,然后使用ControllerResolver来获取控制器,而不是从事件中获取控制器。这似乎给了我正确的控制器。但是,HttpKernel的{​​{1}}似乎与Drupal的某些内部冲突有关,Drupal打破了Drupal的其他部分。至于Drupal的ControllerResolver,我似乎无法弄清楚需要在构造函数中传递的参数。
  2. 通过使用PHP Reflection,我可以获得控制器对象所在的ControllerResolver的静态变量。但是,我不知道这是否是可以通过的唯一类型的对象,使这个解决方案有风险。
  3. 在Drupal中有更多惯用的方法吗?你对此有何看法?

0 个答案:

没有答案