У меня есть документ с полем, отмеченным для сохранения как Коллекция
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/** @ODM\Document */
class Item
{
/**
* @ODM\Collection
*/
protected $things;
}
По умолчанию, когда Doctrine сопоставляет значения из Mongo, $things устанавливается как экземпляр Doctrine\Common\Collections\ArrayCollection.
Однако это нарушает мою модель предметной области, поскольку мои объекты предметной области ожидают, что свойство $things будет экземпляром моего собственного класса коллекции ThingsCollection. Этот класс выполняет различные проверки списка вещей.
Как я могу указать Doctrine использовать вместо этого мой класс ThingsCollection? Я предполагаю, что мне придется заставить класс ThingsCollection реализовать интерфейс Doctrine\Common\Collections\Collection, но это не проблема, если я могу просто выяснить, как сообщить Doctrine о сопоставлении в первую очередь.