Exemplo n.º 1
0
 /**
  * Função que gera um print dos metadados
  */
 public function getPrintMetadata()
 {
     $metadata = new Metadata($this->getDbAdapter());
     foreach ($metadata->getSchemas() as $valueSchema) {
         echo 'In Schema ' . $valueSchema . PHP_EOL;
         // get the table names
         $tableNames = $metadata->getTableNames($valueSchema);
         foreach ($tableNames as $tableName) {
             echo 'In Table ' . $tableName . PHP_EOL;
             $table = $metadata->getTable($tableName, $valueSchema);
             echo '    With columns: ' . PHP_EOL;
             foreach ($table->getColumns() as $column) {
                 echo '        ' . $column->getName() . ' -> ' . $column->getDataType() . PHP_EOL;
             }
             echo PHP_EOL;
             echo '    With constraints: ' . PHP_EOL;
             foreach ($metadata->getConstraints($tableName, $valueSchema) as $constraint) {
                 /** @var $constraint Zend\Db\Metadata\Object\ConstraintObject */
                 echo '        ' . $constraint->getName() . ' -> ' . $constraint->getType() . PHP_EOL;
                 if (!$constraint->hasColumns()) {
                     continue;
                 }
                 echo '            column: ' . implode(', ', $constraint->getColumns());
                 if ($constraint->isForeignKey()) {
                     $fkCols = array();
                     foreach ($constraint->getReferencedColumns() as $refColumn) {
                         $fkCols[] = $constraint->getReferencedTableName() . '.' . $refColumn;
                     }
                     echo ' => ' . implode(', ', $fkCols);
                 }
                 echo PHP_EOL;
             }
             echo '----' . PHP_EOL;
         }
         echo '-------------------------------------------' . PHP_EOL;
     }
 }