From bf1a52517d3512bdc8b5155a852d6eb2e59d94ef Mon Sep 17 00:00:00 2001 From: romanb Date: Wed, 2 Sep 2009 16:08:03 +0000 Subject: [PATCH] [2.0] Fixed issue with file-based metadata drivers and the CLI. --- lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php | 6 +++--- lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php b/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php index 96e2e9f9c..3badb3c2e 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/AbstractFileDriver.php @@ -180,15 +180,15 @@ abstract class AbstractFileDriver implements Driver * * @return array The list of class names that have been preloaded. */ - public function preload() + public function preload($force = false) { - if ($this->_mode != self::PRELOAD) { + if ($this->_mode != self::PRELOAD && ! $force) { return array(); } foreach ((array)$this->_paths as $path) { if (is_dir($path)) { - $files = glob($path . '/*' . $this->_fileExtension); + $files = glob($path . '/*'); foreach ($files as $file) { $this->_elements = array_merge($this->_elements, $this->_loadMappingFile($file)); } diff --git a/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php b/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php index 5820e7c9d..8fc2f8311 100644 --- a/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php +++ b/lib/Doctrine/ORM/Tools/Cli/Tasks/SchemaToolTask.php @@ -52,7 +52,7 @@ class SchemaToolTask extends AbstractTask { $this->getPrinter()->write('schema-tool', 'KEYWORD'); $this->getPrinter()->writeln( - ' --create | --drop | --update [--dump-sql] [--classdir=]', + ' (--create | --drop | --update) [--dump-sql] [--classdir=]', 'INFO'); } @@ -126,8 +126,10 @@ class SchemaToolTask extends AbstractTask } } } else { - $driver->preload(); - $classes = $cmf->getLoadedMetadata(); + $preloadedClasses = $driver->preload(true); + foreach ($preloadedClasses as $className) { + $classes[] = $cmf->getMetadataFor($className); + } } $printer = $this->getPrinter();