SuperAPI AI 工具集

drupal-events

通用与其它

查看项目

更新于 10-15 21:37

技能介绍

用途:本技能面向 Drupal 开发,介绍如何使用事件订阅者(Event Subscriber)机制,基于 Symfony 事件系统(PSR-14)响应内核事件,并给出钩子(hooks)与事件之间的选择指南。

主要能力:覆盖常见内核事件,包括 KernelEvents::REQUEST(每次请求)、KernelEvents::RESPONSE(响应发送前)、KernelEvents::TERMINATE(响应发送后)、KernelEvents::EXCEPTION(未捕获异常时)。示例展示如何实现 EventSubscriberInterface、通过 getSubscribedEvents() 注册事件与优先级(数值越高越早执行,默认 0),并在 onRequest 中判断是否为主请求及用户是否已认证。

使用方式:在模块的 src/EventSubscriber/ 目录下创建订阅者类,实现 EventSubscriberInterface;在 services.yml 中注册服务并打上 event_subscriber 标签,例如 tags: - { name: event_subscriber },并通过 arguments 注入依赖(如 '@current_user')。也可用 Drush 生成:drush generate event-subscriber --answers='{"module": "my_module", "class": "MyEventSubscriber", "event": "kernel.request"}'。

适用场景:需要在请求生命周期各阶段介入逻辑、修改响应、处理异常或做认证后行为调整的 Drupal 模块开发。

限制:资料未提供版本兼容范围、性能注意事项及与具体钩子的逐项对照细节,暂未提供。