diff --git a/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php b/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php
index 803b61fb8..7a5872264 100644
--- a/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php
+++ b/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php
@@ -93,47 +93,51 @@ EOT
*/
private function displayEntity($entityName, EntityManagerInterface $entityManager, OutputInterface $output)
{
- $meta = $this->getClassMetadata($entityName, $entityManager);
+ $metadata = $this->getClassMetadata($entityName, $entityManager);
- $this->formatField('Name', $meta->name);
- $this->formatField('Root entity name', $meta->rootEntityName);
- $this->formatField('Custom generator definition', $meta->customGeneratorDefinition);
- $this->formatField('Custom repository class', $meta->customRepositoryClassName);
- $this->formatField('Mapped super class?', $meta->isMappedSuperclass);
- $this->formatField('Embedded class?', $meta->isEmbeddedClass);
- $this->formatField('Parent classes', $meta->parentClasses);
- $this->formatField('Sub classes', $meta->subClasses);
- $this->formatField('Embedded classes', $meta->subClasses);
- $this->formatField('Named queries', $meta->namedQueries);
- $this->formatField('Named native queries', $meta->namedNativeQueries);
- $this->formatField('SQL result set mappings', $meta->sqlResultSetMappings);
- $this->formatField('Identifier', $meta->identifier);
- $this->formatField('Inheritance type', $meta->inheritanceType);
- $this->formatField('Discriminator column', $meta->discriminatorColumn);
- $this->formatField('Discriminator value', $meta->discriminatorValue);
- $this->formatField('Discriminator map', $meta->discriminatorMap);
- $this->formatField('Generator type', $meta->generatorType);
- $this->formatField('Table', $meta->table);
- $this->formatField('Composite identifier?', $meta->isIdentifierComposite);
- $this->formatField('Foreign identifier?', $meta->containsForeignIdentifier);
- $this->formatField('Sequence generator definition', $meta->sequenceGeneratorDefinition);
- $this->formatField('Table generator definition', $meta->tableGeneratorDefinition);
- $this->formatField('Change tracking policy', $meta->changeTrackingPolicy);
- $this->formatField('Versioned?', $meta->isVersioned);
- $this->formatField('Version field', $meta->versionField);
- $this->formatField('Read only?', $meta->isReadOnly);
+ $rows = array(
+ $this->formatField('Name', $metadata->name),
+ $this->formatField('Root entity name', $metadata->rootEntityName),
+ $this->formatField('Custom generator definition', $metadata->customGeneratorDefinition),
+ $this->formatField('Custom repository class', $metadata->customRepositoryClassName),
+ $this->formatField('Mapped super class?', $metadata->isMappedSuperclass),
+ $this->formatField('Embedded class?', $metadata->isEmbeddedClass),
+ $this->formatField('Parent classes', $metadata->parentClasses),
+ $this->formatField('Sub classes', $metadata->subClasses),
+ $this->formatField('Embedded classes', $metadata->subClasses),
+ $this->formatField('Named queries', $metadata->namedQueries),
+ $this->formatField('Named native queries', $metadata->namedNativeQueries),
+ $this->formatField('SQL result set mappings', $metadata->sqlResultSetMappings),
+ $this->formatField('Identifier', $metadata->identifier),
+ $this->formatField('Inheritance type', $metadata->inheritanceType),
+ $this->formatField('Discriminator column', $metadata->discriminatorColumn),
+ $this->formatField('Discriminator value', $metadata->discriminatorValue),
+ $this->formatField('Discriminator map', $metadata->discriminatorMap),
+ $this->formatField('Generator type', $metadata->generatorType),
+ $this->formatField('Table', $metadata->table),
+ $this->formatField('Composite identifier?', $metadata->isIdentifierComposite),
+ $this->formatField('Foreign identifier?', $metadata->containsForeignIdentifier),
+ $this->formatField('Sequence generator definition', $metadata->sequenceGeneratorDefinition),
+ $this->formatField('Table generator definition', $metadata->tableGeneratorDefinition),
+ $this->formatField('Change tracking policy', $metadata->changeTrackingPolicy),
+ $this->formatField('Versioned?', $metadata->isVersioned),
+ $this->formatField('Version field', $metadata->versionField),
+ $this->formatField('Read only?', $metadata->isReadOnly),
- $this->formatEntityListeners($meta->entityListeners);
- $this->formatAssociationMappings($meta->associationMappings);
- $this->formatFieldMappings($meta->fieldMappings);
+ $this->formatEntityListeners($metadata->entityListeners),
+ );
+
+ $rows = array_merge(
+ $rows,
+ $this->formatAssociationMappings($metadata->associationMappings),
+ $this->formatFieldMappings($metadata->fieldMappings)
+ );
$table = new Table($output);
$table->setHeaders(array('Field', 'Value'));
- foreach ($this->out as $tuple) {
- $table->addRow($tuple);
- }
+ array_map(array($table, 'addRow'), $rows);
$table->render();
}
@@ -255,6 +259,8 @@ EOT
*
* @param string $label Label for the value
* @param mixed $value A Value to show
+ *
+ * @return array
*/
private function formatField($label, $value)
{
@@ -262,31 +268,38 @@ EOT
$value = 'None';
}
- $this->out[] = array(sprintf('%s', $label), $this->formatValue($value));
+ return array(sprintf('%s', $label), $this->formatValue($value));
}
/**
* Format the association mappings
*
* @param array
+ *
+ * @return array
*/
private function formatAssociationMappings($associationMappings)
{
- $this->formatField('Association mappings:', '');
+ $output = array();
+ $output[] = $this->formatField('Association mappings:', '');
foreach ($associationMappings as $associationName => $mapping) {
- $this->formatField(sprintf(' %s', $associationName), '');
+ $output[] = $this->formatField(sprintf(' %s', $associationName), '');
foreach ($mapping as $field => $value) {
- $this->formatField(sprintf(' %s', $field), $this->formatValue($value));
+ $output[] = $this->formatField(sprintf(' %s', $field), $this->formatValue($value));
}
}
+
+ return $output;
}
/**
* Format the entity listeners
*
* @param array $entityListeners
+ *
+ * @return array
*/
private function formatEntityListeners($entityListeners)
{
@@ -296,24 +309,29 @@ EOT
$entityListenerNames[] = get_class($entityListener);
}
- $this->formatField('Entity listeners', $entityListenerNames);
+ return $this->formatField('Entity listeners', $entityListenerNames);
}
/**
* Form the field mappings
*
* @param array $fieldMappings
+ *
+ * @return array
*/
private function formatFieldMappings($fieldMappings)
{
- $this->formatField('Field mappings:', '');
+ $output = array();
+ $output[] = $this->formatField('Field mappings:', '');
foreach ($fieldMappings as $fieldName => $mapping) {
- $this->formatField(sprintf(' %s',$fieldName), '');
+ $output[] = $this->formatField(sprintf(' %s',$fieldName), '');
foreach ($mapping as $field => $value) {
- $this->formatField(sprintf(' %s', $field), $this->formatValue($value));
+ $output[] = $this->formatField(sprintf(' %s', $field), $this->formatValue($value));
}
}
+
+ return $output;
}
}