2013-07-03 94 views
0

我想在我的实体上定制注释,它将在persist事件上执行某些操作,但通过注释进行定义。举个例子:Symfony2:如何通过实体注释创建事件侦听器?

/** 
* @ORM\Entity 
* @Searchable("column"="title") 
*/ 
class Product 
{ 

} 

@Searchable注释应该以某种方式触发我的代码,将读取列title,独立的单词和保存到自己的表(什么,我真的需要更加简化的例子)。

我知道我可以使用原则侦听器并将它们注册到config.yml中,但我确实需要通过实体注释完成此操作,以便searchable捆绑包可以很容易地通过不同的项目重用。我读了大量的文档,甚至试图理解Gedmo行为捆绑代码,但我失败了。可以以某种方式告诉我如何做到这一点,以一种防白痴的方式?

我甚至读http://php-and-symfony.matthiasnoback.nl/2011/12/symfony2-doctrine-common-creating-powerful-annotations/但这太复杂了。

回答

1

你给出的链接是你应该如何做的完美例子。 您认为使用定制手工解决方案会有多复杂?

不过,你可以尝试:

+0

这个例子没有解释如何触发它postPersist事件。 Gedmo/Timestampable行为可以做到这一点,但代码对我来说有点令人困惑。 – Zeljko

+0

它使用原则用户/听众(请参阅我的链接#1) – Florian

+0

此监听器可能是有权访问注释阅读器(例如注入ctor)的服务。 – Florian

相关问题