gpt4 book ai didi

orm - Doctrine 2 中的不可变集合?

转载 作者:行者123 更新时间:2023-12-04 19:17:39 24 4
gpt4 key购买 nike

我正在寻找一种从 Doctrine 2 中的域对象返回不可变集合的方法。让我们从 doc 中的这个示例开始。 :

class User
{
// ...

public function getGroups()
{
return $this->groups;
}
}

// ...
$user = new User();
$user->getGroups()->add($group);

来自 DDD观点,如果 User是聚合根,那么我们更喜欢:

$user = new User();
$user->addGroup($group);

但是,如果我们确实需要 getGroups()方法也是如此,那么我们理想情况下不想返回对集合的内部引用,因为这可能允许某人绕过 addGroup()方法。

除了创建自定义的不可变集合代理之外,是否有返回不可变集合的内置方法?如...

    public function getGroups()
{
return new ImmutableCollection($this->groups);
}

最佳答案

最简单(也是推荐)的方法是 toArray() :

return $this->groups->toArray();

关于orm - Doctrine 2 中的不可变集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7375334/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com