/** * importSchema * * method for importing existing schema to Doctrine_Record classes * * @param string $directory * @param array $databases * @return array the names of the imported classes */ public function importSchema($directory, array $databases = array(), array $options = array()) { $options['singularize'] = !isset($options['singularize']) ? $this->conn->getAttribute('singularize_import') : $options['singularize']; $connections = Doctrine_Manager::getInstance()->getConnections(); foreach ($connections as $name => $connection) { // Limit the databases to the ones specified by $databases. // Check only happens if array is not empty if (!empty($databases) && !in_array($name, $databases)) { continue; } $builder = new Doctrine_Import_Builder(); $builder->setTargetPath($directory); $builder->setOptions($options); $classes = array(); foreach ($connection->import->listTables() as $table) { $definition = array(); $definition['tableName'] = $table; // echo $table . "<br />\n"; if (!isset($options['singularize']) || $options['singularize'] !== false) { $e = explode('_', Doctrine_Inflector::tableize($table)); foreach ($e as $k => $v) { $e[$k] = Doctrine_Inflector::singularize($v); } $classTable = implode('_', $e); } else { $classTable = Doctrine_Inflector::tableize($table); } $definition['className'] = Doctrine_Inflector::classify($classTable); $definition['columns'] = $connection->import->listTableColumns($table); //var_dump ($definition); $builder->buildRecord($definition); $classes[] = $definition['className']; } } return $classes; }