Ejemplo n.º 1
0
 public function dump(array $array)
 {
     try {
         return ScYaml::dump($array);
     } catch (\Symfony\Components\Yaml\Exception $e) {
         throw new ParserException($e->getMessage());
     }
 }
Ejemplo n.º 2
0
 /**
  * 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);
 }
Ejemplo n.º 3
0
 protected function addParameters()
 {
     if (!$this->container->getParameters()) {
         return '';
     }
     return Yaml::dump(array('parameters' => $this->prepareParameters($this->container->getParameters())), 2);
 }
Ejemplo n.º 4
0
 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);
 }