namibia
df0489e1eeeeab5a9bd44e1d84fce49924fe1bac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
<?php namespace Fixture\Service; /** * Data fixture utillity service to enable easy setup of test data. * @author andre.fourie */ class Fixture { /** * @var \Doctrine\ORM\EntityManager */ static protected $em; /** * @var array */ static protected $references = array(); /** * Set Doctrine Entity Manager. * @param \Doctrine\ORM\EntityManager $em */ static public function setEntityManager(\Doctrine\ORM\EntityManager $em) { self::$em = $em; } /** * Add multiple entries. * @param string $entityName * @param array $stackData */ static protected function addStack($entityName, array $stackData) { foreach ($stackData as $key => $data) { $referenceName = !is_numeric($key) ? $key : false; self::addEntry($entityName, $data, $referenceName); } } /** * Add a single entry. * @param string $entityName * @param array $data * @param string $referenceName */ static protected function addEntry($entityName, array $data, $referenceName = false) { $entity = new $entityName(); $entity->fromArray($data); self::$em->persist($entity); self::$em->flush(); if ($referenceName) { self::$references[$referenceName] = self::$em->getReference($entityName, $entity->id); } } /** * Retrieve a reference. * @param string $name * @return object|null */ static protected function getReference($name) { self::$em->merge(self::$references[$name]); return self::$references[$name]; } } |
Commits for namibiamodule/Fixture/src/Fixture/Service/Fixture.php
Revision | Author | Commited | Message |
---|---|---|---|
df0489 ... | Mark | Fri 14 Oct, 2016 10:01:00 +0000 | initial commit |