/** * * @param string $className * @return ClassMetadata */ protected function extractClassMetadata($className) { $driver = new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($this->_sm); foreach ($driver->getAllClassNames() as $dbClassName) { $class = new ClassMetadataInfo($dbClassName); $driver->loadMetadataForClass($dbClassName, $class); if (strtolower($class->name) == strtolower($className)) { return $class; } } $this->fail("No class matching the name '" . $className . "' was found!"); }
/** * @param string $className * @return ClassMetadata */ protected function extractClassMetadata(array $classNames) { $classNames = array_map('strtolower', $classNames); $metadatas = array(); $sm = $this->_em->getConnection()->getSchemaManager(); $driver = new \Doctrine\ORM\Mapping\Driver\DatabaseDriver($sm); foreach ($driver->getAllClassNames() as $className) { if (!in_array(strtolower($className), $classNames)) { continue; } $class = new ClassMetadataInfo($className); $driver->loadMetadataForClass($className, $class); $metadatas[$className] = $class; } if (count($metadatas) != count($classNames)) { $this->fail("Have not found all classes matching the names '" . implode(", ", $classNames) . "' only tables " . implode(", ", array_keys($metadatas))); } return $metadatas; }