如何在通用Symfony2 lib中引用用户对象?

时间:2012-12-08 16:31:18

标签: php symfony orm doctrine bundle

当创建一个不仅仅适用于一个应用程序的捆绑包,但考虑到更通用的用法时,让我们说一个ChatBundle,我总是遇到关于如何使用用户对象的同样问题,在许多情况下当然需要这样做(喜欢聊天)。

在一个仅在一个应用程序中使用的包中,我只是硬编码对我的主包的引用,如下所示:

<?php
namespace Acme\ChatBundle\Entity;

/**
 * @ORM\Entity
 */
class Message
{
    /**
     * @ORM\ManyToOne(targetEntity="Acme\ProjectBundle\User")
     */
    private $user;
...

但是在一个通用的捆绑中,这是不可能的。是让开发人员自己实现所有实体的唯一方法吗?有没有最佳做法?我找不到关于该主题的任何文档或博客文章,除了其他软件包的代码(但大多数是复杂的,抽象的,很难掌握那里的主要问题)。

1 个答案:

答案 0 :(得分:1)

我认为这里最好的解决方案是使用Doctrine's TargetEntityListener