silex 超载 class 用户

silex overload class User

我希望项目需要覆盖 Silex 2.0 中的 class 用户:

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)
    }
}

你知道怎么做吗?

谢谢!

决赛classUser is only defined for the InMemoryUserProvider.

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

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

如果您采用文档示例,则应替换此行:

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);

否则,最佳做法是创建自己的用户 class。

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