public function testEmbededPhp() { $filename = __DIR__ . '/Fixtures/embededPhp.yml'; Yaml::enablePhpParsing(); $parsed = Yaml::parse($filename); $this->assertEquals(array('value' => 6), $parsed); }
function parse() { Yaml::enablePhpParsing(); # parse yaml datas $this->rawData = Yaml::parse($this->resource, true, true); $config_values = array_merge($this->rawData); # pour chaque fixture foreach ($config_values['fixtures'] as $entity_def) { # obtenir la classe $class = $entity_def['entity']; /* @note @php changer une propriété privée d'un champ */ # instancier la classe //$prototype = unserialize(sprintf('O:%d:"%s":0:{}', strlen($class), $class)); $entity = new $class(); //clone $prototype; $ref = new ReflectionObject($entity); # pour chaque champ du fixture foreach ($entity_def['fields'] as $field => $value) { # si la valeur est un tableau if (is_array($value)) { # si la valeur est du time datetime if (isset($value['datetime'])) { $value = \DateTime::createFromFormat('U', $value['datetime']); } else { $tmp = new ArrayCollection(); # pour chaque valeur du tableau foreach ($value as $name) { # réferencer l'entité déja instanciée dans le tableau $tmp[] = $this->entities[$name]; } $value = $tmp; } # si valeur entourée de % % , réferencer l'entité correspondante } elseif (preg_match("#^\\%(?P<name>.*)\\%\$#", $value, $matches) > 0) { $value = $this->entities[$matches['name']]; } $field = $ref->getProperty($field); $field->setAccessible(true); # affecter la valeur du champ à la proprièter $field->setValue($entity, $value); } $name = isset($entity_def['name']) ? $entity_def['name'] : uniqid(); $this->entities[$name] = $entity; } # retourner les entitées return $this->entities; }
protected function getGenerator($generatorYaml) { Yaml::enablePhpParsing(true); $yaml = Yaml::parse($generatorYaml); return $this->container->get($yaml['generator']); }
protected function loadQueueConfig() { if ($this->queueConfigFile) { $this->logger->log("Loading config file: {$this->queueConfigFile}"); Yaml::enablePhpParsing(); try { $this->queueConfig = Yaml::parse($this->queueConfigFile); } catch (ParseException $e) { $msg = "Invalid config file: " . $e->getMessage(); $this->logger->log($msg); throw new RuntimeException($msg, 0, $e); } } if (!$this->queueConfig) { $this->logger->log('No configuration loaded.'); $this->queueConfig = array(); } }
protected function parseYaml($file) { Yaml::enablePhpParsing(true); $this->yaml_datas = Yaml::parse($file); }