我希望在我的实体上有自定义注释,它将在 persist
事件上执行某些操作,但通过注释定义 . 一个例子:
/**
* @ORM\Entity
* @Searchable("column"="title")
*/
class Product
{
}
那个 @Searchable
注释应该以某种方式触发我的代码,它将读取列 title
,单独的单词并保存到自己的表中(我真正需要的简化示例) .
我知道我可以使用doctrine监听器并在config.yml中注册它们,但我真的需要通过实体注释来完成这一点,以便 searchable
bundle可以通过不同的项目轻松地重用 . 我阅读了大量的文档,甚至试图理解Gedmo行为捆绑代码,但我失败了 . 能以某种方式告诉我如何做到这一点,以一种白痴的方式?
我甚至读过http://php-and-symfony.matthiasnoback.nl/2011/12/symfony2-doctrine-common-creating-powerful-annotations/但这有点太复杂了 .
1 回答
您提供的链接是您应该如何做的完美示例 . 您认为使用自定义手工制作解决方案会有多复杂?
不过,您可以尝试:
创建一个侦听prePersist的教义监听器:
在此侦听器中,使用注释驱动程序/阅读器来读取 your 注释
用这些信息做一些疯狂的事情
http://symfony.com/doc/current/cookbook/doctrine/event_listeners_subscribers.html#configuring-the-listener-subscriber
http://docs.doctrine-project.org/projects/doctrine-common/en/latest/reference/annotations.html
发疯了