Symfony:控制器类型提示UserInterface

时间:2018-02-16 20:14:06

标签: php symfony type-hinting

我非常喜欢将当前用户作为参数插入Controller方法的功能。但是有一件事我不确定。如果我将当前用户插入Controller操作,如下所示:

public function myAction(UserInterface $currUsr)
{
    $id = $currUsr->getId();
    $email = $currUsr->getEmail();
}

我无法知道对象$currUsr实际上有方法getId()getEmail(),因为Symfony\Component\Security\Core\User\UserInterface没有定义这些方法。

那么提示的类型有什么意义呢??

1 个答案:

答案 0 :(得分:-1)

如果您需要更具体的类,那些具有UserInterface缺失的方法,您应该使用它

public function myAction(UserWithMethods $currUsr)
{
    $id = $currUsr->getId();
    $email = $currUsr->getEmail();
}

然后无需添加docblock。