public function dump(array $array) { try { return ScYaml::dump($array); } catch (\Symfony\Components\Yaml\Exception $e) { throw new ParserException($e->getMessage()); } }
/** * Converts a single ClassMetadata instance to the exported format * and returns it * * TODO: Should this code be pulled out in to a toArray() method in ClassMetadata * * @param ClassMetadataInfo $metadata * @return mixed $exported */ public function exportClassMetadata(ClassMetadataInfo $metadata) { $array = array(); if ($metadata->isMappedSuperclass) { $array['type'] = 'mappedSuperclass'; } else { $array['type'] = 'entity'; } $array['table'] = $metadata->table['name']; if (isset($metadata->table['schema'])) { $array['schema'] = $metadata->table['schema']; } $inheritanceType = $metadata->inheritanceType; if ($inheritanceType !== ClassMetadataInfo::INHERITANCE_TYPE_NONE) { $array['inheritanceType'] = $this->_getInheritanceTypeString($inheritanceType); } if ($column = $metadata->discriminatorColumn) { $array['discriminatorColumn'] = $column; } if ($map = $metadata->discriminatorMap) { $array['discriminatorMap'] = $map; } if ($metadata->changeTrackingPolicy !== ClassMetadataInfo::CHANGETRACKING_DEFERRED_IMPLICIT) { $array['changeTrackingPolicy'] = $this->_getChangeTrackingPolicyString($metadata->changeTrackingPolicy); } if (isset($metadata->table['indexes'])) { $array['indexes'] = $metadata->table['indexes']; } if (isset($metadata->table['uniqueConstraints'])) { $array['uniqueConstraints'] = $metadata->table['uniqueConstraints']; } $fieldMappings = $metadata->fieldMappings; $ids = array(); foreach ($fieldMappings as $name => $fieldMapping) { if (isset($fieldMapping['length'])) { $fieldMapping['type'] = $fieldMapping['type'] . '(' . $fieldMapping['length'] . ')'; unset($fieldMapping['length']); } $fieldMapping['column'] = $fieldMapping['columnName']; unset($fieldMapping['columnName'], $fieldMapping['fieldName']); if ($fieldMapping['column'] == $name) { unset($fieldMapping['column']); } if (isset($fieldMapping['id']) && $fieldMapping['id']) { $ids[$name] = $fieldMapping; unset($fieldMappings[$name]); continue; } $fieldMappings[$name] = $fieldMapping; } if ($idGeneratorType = $this->_getIdGeneratorTypeString($metadata->generatorType)) { $ids[$metadata->getSingleIdentifierFieldName()]['generator']['strategy'] = $this->_getIdGeneratorTypeString($metadata->generatorType); } if ($ids) { $array['fields'] = $ids; } if ($fieldMappings) { if (!isset($array['fields'])) { $array['fields'] = array(); } $array['fields'] = array_merge($array['fields'], $fieldMappings); } $associations = array(); foreach ($metadata->associationMappings as $name => $associationMapping) { $cascade = array(); if ($associationMapping->isCascadeRemove) { $cascade[] = 'remove'; } if ($associationMapping->isCascadePersist) { $cascade[] = 'persist'; } if ($associationMapping->isCascadeRefresh) { $cascade[] = 'refresh'; } if ($associationMapping->isCascadeMerge) { $cascade[] = 'merge'; } if ($associationMapping->isCascadeDetach) { $cascade[] = 'detach'; } $associationMappingArray = array('targetEntity' => $associationMapping->targetEntityName, 'cascade' => $cascade); if ($associationMapping instanceof OneToOneMapping) { $joinColumns = $associationMapping->joinColumns; $newJoinColumns = array(); foreach ($joinColumns as $joinColumn) { $newJoinColumns[$joinColumn['name']]['referencedColumnName'] = $joinColumn['referencedColumnName']; if (isset($joinColumn['onDelete'])) { $newJoinColumns[$joinColumn['name']]['onDelete'] = $joinColumn['onDelete']; } if (isset($joinColumn['onUpdate'])) { $newJoinColumns[$joinColumn['name']]['onUpdate'] = $joinColumn['onUpdate']; } } $oneToOneMappingArray = array('mappedBy' => $associationMapping->mappedBy, 'inversedBy' => $associationMapping->inversedBy, 'joinColumns' => $newJoinColumns, 'orphanRemoval' => $associationMapping->orphanRemoval); $associationMappingArray = array_merge($associationMappingArray, $oneToOneMappingArray); $array['oneToOne'][$name] = $associationMappingArray; } else { if ($associationMapping instanceof OneToManyMapping) { $oneToManyMappingArray = array('mappedBy' => $associationMapping->mappedBy, 'inversedBy' => $associationMapping->inversedBy, 'orphanRemoval' => $associationMapping->orphanRemoval, 'orderBy' => $associationMapping->orderBy); $associationMappingArray = array_merge($associationMappingArray, $oneToManyMappingArray); $array['oneToMany'][$name] = $associationMappingArray; } else { if ($associationMapping instanceof ManyToManyMapping) { $manyToManyMappingArray = array('mappedBy' => $associationMapping->mappedBy, 'inversedBy' => $associationMapping->inversedBy, 'joinTable' => $associationMapping->joinTable, 'orderBy' => $associationMapping->orderBy); $associationMappingArray = array_merge($associationMappingArray, $manyToManyMappingArray); $array['manyToMany'][$name] = $associationMappingArray; } } } } if (isset($metadata->lifecycleCallbacks)) { $array['lifecycleCallbacks'] = $metadata->lifecycleCallbacks; } return \Symfony\Components\Yaml\Yaml::dump(array($metadata->name => $array), 10); }
protected function addParameters() { if (!$this->container->getParameters()) { return ''; } return Yaml::dump(array('parameters' => $this->prepareParameters($this->container->getParameters())), 2); }
protected function addParameters() { if (!$this->container->getParameterBag()->all()) { return ''; } if ($this->container->isFrozen()) { $parameters = $this->prepareParameters($this->container->getParameterBag()->all()); } else { $parameters = $this->container->getParameterBag()->all(); } return Yaml::dump(array('parameters' => $parameters), 2); }