silex重载类用户

时间:2016-10-18 14:13:18

标签: symfony silex

我希望项目需要覆盖Silex 2.0中的类User:

Symfony\Component\Security\Core\User;

我绝对不知道如何。 我的最终目标是重载方法:

final class User implements AdvancedUserInterface
{
     /**
     * {@inheritdoc}
     */
    public function getRoles()
    {
        return unserialize($this->roles[0]); // work (overload)
        return $this->roles; // Not work (delete)
    }
}

你知道怎么做吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

最终的课程User仅针对InMemoryUserProvider定义。

要从Silex读取此数据库,您必须编写自己的UserProviderconfigure it代码。

可以在构造函数中设置User的正确值,而不是扩展$roles类。

如果您参加了文档示例,则应替换此行:

return new User($user['username'], $user['password'], explode(',', $user['roles']), true, true, true, true);

由此:

return new User($user['username'], $user['password'], unserialize($user['roles']), true, true, true, true);

否则,最佳做法是创建自己的User类。

/**
 * User is the user implementation used by the in-memory user provider.
 *
 * This should not be used for anything else.
 */