Doctrine arrayCollection检查成员是否为instanceof

时间:2017-04-18 10:23:25

标签: php symfony doctrine

当我声明一个方法时,我声明了一个参数的类型:

public function doOnce(CoolParam $param) {...}

但是当我有一个Doctrine ArrayCollection时,我只能检查数组

public function doOMulti(ArrayCollection $params) {...}

现在我想确定,ArrayCollection的所有成员都是CoolParam的实例。因此,我可以循环整个数组并检查$param instanceof CoolParam

但是有没有办法在这种情况下使用ArrayCollection方法?就像

一样
$params->membersAreInstanceOf('CoolParam');

1 个答案:

答案 0 :(得分:1)

一种选择是使用另一个类中的ArrayCollection强制执行集合中元素的类型。

例如

class UsersCollection
{
    private $users;

    public function __construct()
    {
        $this->users = new ArrayCollection();
    }

    public function addUser(User $user)
    {
        $this->users->add($user);
    }
}

然后您就会知道public function doOMulti(UsersCollection $params) {...}中的所有元素都是正确的类型。