当创建一个不仅仅用于一个应用程序的包时,而是考虑到更通用的用途,比如说一个 ChatBundle,我总是遇到同样的问题,即如何使用在许多情况下当然需要的用户对象(比如在聊天)。
在仅在一个应用程序中使用的包中,我只需硬编码对我的主包的引用,如下所示:
<?php
namespace Acme\ChatBundle\Entity;
/**
* @ORM\Entity
*/
class Message
{
/**
* @ORM\ManyToOne(targetEntity="Acme\ProjectBundle\User")
*/
private $user;
...
但在通用捆绑包中这是不可能的。是让开发者自己实现所有实体的唯一方法吗?有没有最佳实践?除了其他捆绑包的代码外,我找不到任何关于该主题的文档或博客文章(但它们中的大多数都非常复杂和抽象,很难掌握其中的主要问题)。