gpt4 book ai didi

symfony - 如何在 Symfony2 中查看可用事件列表

转载 作者:行者123 更新时间:2023-12-04 02:39:49 24 4
gpt4 key购买 nike

如何查看 Symfony2 中的所有可用事件?

我在谷歌上找到了一个命令

php app\console container:debug --show-private

但它没有显示所有可用的事件。类似名为“security.interactive_login”的事件未在其中列出。
有没有办法查看可用的事件?

最佳答案

控制台命令

你可以运行:

app/console debug:event-dispatcher

这将显示每个订阅者的详细摘要,按优先级排序 每个事件。 不幸的是,这不会向您显示所有可能的事件,因为由于事件系统固有的动态特性,查询容器以查找可能注册的任何事件是不可行的。

要了解事件,您需要引用每个组件和捆绑包的文档和代码。

文档是最好的起点

Symfony 标准附带大量事件。每个 Symfony 组件和包可能会或可能不会定义事件 — 最好的办法是查看每个组件或捆绑包的文档以获取对事件的引用。

在文档中可以找到一些非常常见的事件:
  • HTTP Kernel Events
  • Console Events
  • Form Events

  • 代码分析

    我使用 PhpStorm 查找 Symfony 的基本 Event 类 ( Symfony\Component\EventDispatcher\Event ) 的所有子类。

    我生成了一个继承树,每个子类都是它的父类的子类。

    * 注意:添加 Symfony\Component\ 找到 FQN
  • EventDispatcher\Event
  • EventDispatcher\GenericEvent
  • Console\Event\ConsoleEvent
  • Console\Event\ConsoleCommandEvent
  • Console\Event\ConsoleExceptionEvent
  • Console\Event\ConsoleTerminateEvent
  • Form\FormEvent
  • HttpKernel\Event\KernelEvent
  • HttpKernel\Event\FilterResponseEvent
  • HttpKernel\Event\FilterControllerEvent
  • HttpKernel\Event\FinishRequestEvent
  • HttpKernel\Event\GetResponseEvent
  • HttpKernel\Event\GetResponseForControllerResultEvent
  • HttpKernel\Event\GetResponseForExceptionEvent
  • HttpKernel\Event\PostResponseEvent
  • Security\Http\Event\SwitchUserEvent
  • Security\Http\Event\InteractiveLoginEvent

  • 我并没有声称这些都是你可以/应该参与的公共(public)事件——这只是以编程方式检查 3rd 方代码并了解潜在习语的一种方法。

    例如,我注意到 HttpKernel、Security 和 Console 组件都使用命名空间常量来公开它们的 key ,请参阅:
  • Symfony\Component\HttpKernel\KernelEvents
  • Symfony\Component\Security\Http\SecurityEvents
  • Symfony\Component\Console\ConsoleEvents
  • 关于symfony - 如何在 Symfony2 中查看可用事件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19743537/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com