/**
  *
  * @param FixtureData $fixtureData
  * @param FixtureCollection $collection
  */
 private function executeExpression(FixtureData $fixtureData, FixtureCollection $collection)
 {
     $data = $fixtureData->getData();
     $lang = $this->expressionLanguage;
     array_walk_recursive($data, function (&$value, $key) use($lang, $collection) {
         if (preg_match('/^@expr\\((.*)\\)$/', $value, $hit)) {
             $expr = substr($value, 6, -1);
             $value = $lang->evaluate($expr, array('collection' => $collection));
         }
     });
     $fixtureData->setData($data);
 }
Пример #2
0
 /**
  *
  * @param FixtureData $data
  * @throws FixtureException
  */
 public function persist(FixtureData $data)
 {
     $object = $data->getObject();
     $class = get_class($object);
     foreach ($this->mapping as $mapping) {
         if (!Matcher::match($class, $mapping['pattern'])) {
             continue;
         }
         return $mapping['persister']->persist($data);
     }
     throw new FixtureException(sprintf('not matching for class "%s"', $class));
 }
Пример #3
0
 /**
  * @param object $object
  * @param FixtureData $fixtureData
  * @throws \DavidBadura\Fixtures\Util\ObjectAccess\ObjectAccessException
  */
 public function finalizeObject($object, FixtureData $fixtureData)
 {
     $properties = $fixtureData->getProperties();
     $data = $fixtureData->getData();
     $constructor = $properties->get('constructor', array());
     $args = array();
     if (!empty($constructor)) {
         foreach ($constructor as $key) {
             $key = substr($key, 0, 1) == '?' ? substr($key, 1) : $key;
             $args[$key] = true;
         }
     }
     $objectAccess = new ObjectAccess($object);
     foreach ($data as $property => $value) {
         if (!isset($args[$property])) {
             if (is_string($value)) {
                 $value = str_replace('{unique_id}', uniqid(), $value);
             }
             $objectAccess->writeProperty($property, $value);
         }
     }
 }
Пример #4
0
 /**
  *
  * @param FixtureData $data
  */
 public function persist(FixtureData $data)
 {
     $object = $data->getObject();
     $this->dm->persist($object);
 }
Пример #5
0
 /**
  *
  * @param  FixtureData $fixtureData
  * @return $this
  */
 public function remove(FixtureData $fixtureData)
 {
     $key = $fixtureData->getKey();
     if ($this->has($key)) {
         unset($this->fixtureData[$key]);
     }
     return $this;
 }
Пример #6
0
 /**
  *
  * @param FixtureData $data
  */
 public function persist(FixtureData $data)
 {
     $this->objects[] = $data->getObject();
 }