2 namespace Fixture\Service;
7 * Data fixture utillity service to enable easy setup of test data.
14 * @var \Doctrine\ORM\EntityManager
20 static protected $references = array();
24 * Set Doctrine Entity Manager.
25 * @param \Doctrine\ORM\EntityManager $em
27 static public function setEntityManager(\Doctrine\ORM\EntityManager $em)
33 * Add multiple entries.
34 * @param string $entityName
35 * @param array $stackData
37 static protected function addStack($entityName, array $stackData)
39 foreach ($stackData as $key => $data)
41 $referenceName = !is_numeric($key)
44 self::addEntry($entityName, $data, $referenceName);
50 * @param string $entityName
52 * @param string $referenceName
54 static protected function addEntry($entityName, array $data, $referenceName = false)
56 $entity = new $entityName();
57 $entity->fromArray($data);
58 self::$em->persist($entity);
62 self::$references[$referenceName] = self::$em->getReference($entityName, $entity->id);
67 * Retrieve a reference.
71 static protected function getReference($name)
73 self::$em->merge(self::$references[$name]);
74 return self::$references[$name];