Я ищу способ вернуть неизменную коллекцию из объекта домена в 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);
}