diff --git a/lib/Doctrine/ORM/PersistentCollection.php b/lib/Doctrine/ORM/PersistentCollection.php index 98e3b91d8..7564133b9 100644 --- a/lib/Doctrine/ORM/PersistentCollection.php +++ b/lib/Doctrine/ORM/PersistentCollection.php @@ -101,16 +101,18 @@ final class PersistentCollection extends AbstractLazyCollection implements Selec /** * Creates a new persistent collection. * - * @param EntityManagerInterface $em The EntityManager the collection will be associated with. - * @param ClassMetadata $class The class descriptor of the entity type of this collection. - * @param Collection $coll The collection elements. + * @param EntityManagerInterface $em The EntityManager the collection will be associated with. + * @param ClassMetadata $class The class descriptor of the entity type of this collection. + * @param Collection|array|null $collection The collection elements. */ - public function __construct(EntityManagerInterface $em, $class, $coll) + public function __construct(EntityManagerInterface $em, $class, $collection) { - $this->collection = $coll; $this->em = $em; $this->typeClass = $class; $this->initialized = true; + $this->collection = $collection instanceof Collection + ? $collection + : new ArrayCollection((array) $collection); } /**