实体的听众

编辑本页

警告:您正在浏览版本文档欧宝官网下载app1.12.x它不再被维护了。

如果您的一些项目仍在使用此版本,请考虑升级。

实体的听众

作为服务的实体侦听器必须向实体侦听器解析器注册。在实体类的注释之上,您必须用标记服务doctrine.orm.entity_listener它被自动添加到解析器。使用(可选)entity_manager属性指定应该向哪个实体管理器注册。

完整的例子:

12 3 4 5 6 7 8 9 10 11 12 13
<?php/ / User.php使用学说ORM映射作为ORM/ * * *@ORM* \实体@ORM\ EntityListeners ({UserListener "}) * /用户/ /……
  • YAML
  • XML
1 2 3 4 5 6 7 8
服务:user_listener:类:\ UserListener标签:#以下最小配置-名称:doctrine.orm.entity_listener或者,你可以选择给出实体管理器的名称,如下所示#-{名称:doctrine.orm。实体_listener, entity_manager: custom }

从doctrine/orm 2.5和doctrine bundle 1.5.2开始,你可以从服务定义中声明所有选项,而不是在实体上注册实体监听器:

  • YAML
  • XML
12 3 4 5 6 7 8 9 10 11 12
服务:user_listener:类:\ UserListener标签:-名称:doctrine.orm.entity_listener事件:preUpdate实体:应用实体\ \用户# entity_manager属性是可选的entity_manager:自定义# method属性是可选的方法:validateEmail

如果不指定方法属性时,它返回到订阅的事件名称。

从Doctrine bundle 1.12开始,如果此方法不存在,但如果您的实体侦听器是可调用的,则它将返回到__invoke ()方法。

另请参阅https://www.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html#entity-listeners获取Symfony所需的实体监听器和解析器的更多信息。ob娱乐下载

惰性实体监听器

您可以使用懒惰的属性,以确保侦听器服务仅在实际使用时实例化。

  • YAML
  • XML
1 2 3 4 5
服务:lazy_user_listener:类:\ UserListener标签:-名称:doctrine.orm.entity_listener,懒惰:真正的
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。