Symfony 2 bundle依赖问题

时间:2012-02-24 19:19:04

标签: symfony doctrine doctrine-orm

我创建了一个包来管理用户组权限。我希望它通过将项目移动到供应商目录来使项目独立 为了使这个包不可变,我将用户数据移动到usermeta包中 主捆绑包含有关用户的用户名和电子邮件,而usermeta包含其他所有内容(名称,生日等,无论项目需要什么)。

问题是打算属于核心捆绑组的主用户捆绑包,每个项目使用相同的捆绑包 user-usermeta关系现在创建了一个依赖项。所以每个项目都需要它。

我的问题是   - 我如何标准化其格式,在每个项目中强制执行正确的格式   - 如何使此依赖项可选(首选)

1 个答案:

答案 0 :(得分:5)

我建议您只处理UserInterface而不是捆绑中的User实体。

如果Symfony UserInterface没有实现您需要的所有内容(用户名但没有电子邮件),请在您的包中创建您自己的UserInterface:

namespace YourDomain\YourBundle\Interface;

use Symfony\Component\Security\Core\User\UserInterface as BaseInterface;

/**
 * UserInterface is the interface that user classes must implement.
 */
interface UserInterface extends BaseInterface
{
    /**
     * Returns the email address of the user.
     *
     * @return string The user email address
     */
    function getEmail();
}

然后,在使用您的bundle的项目中,您的User实体必须实现您的特定接口而不是Symfony UserInterface。