From: Jan Schneider Date: Wed, 26 Jan 2011 16:40:27 +0000 (+0100) Subject: Search all migration/ subdirectories for migration files. Now that's a piece of X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=aa5f1369cc0276ed4b3e64f80d3f6a2e1692f218;p=horde.git Search all migration/ subdirectories for migration files. Now that's a piece of PHP5 code! --- diff --git a/framework/Db/lib/Horde/Db/Migration/Migrator.php b/framework/Db/lib/Horde/Db/Migration/Migrator.php index ce25e99bb..fa918ce85 100644 --- a/framework/Db/lib/Horde/Db/Migration/Migrator.php +++ b/framework/Db/lib/Horde/Db/Migration/Migrator.php @@ -46,9 +46,13 @@ class Horde_Db_Migration_Migrator /** * Constructor. * - * @param string $direction - * @param string $migrationsPath - * @param integer $targetVersion + * @param Horde_Db_Adapter $connection A DB connection object. + * @param Horde_Log_Logger $logger A logger object. + * @param array $options Additional options for the migrator: + * - migrationsPath: directory with the + * migration files. + * - schemaTableName: table for storing + * the schema version. * * @throws Horde_Db_Migration_Exception */ @@ -200,8 +204,21 @@ class Horde_Db_Migration_Migrator */ protected function _getMigrationFiles() { - $files = glob($this->_migrationsPath . '/[0-9]*_*.php'); - return $this->_isDown() ? array_reverse($files) : $files; + return array_keys( + iterator_to_array( + new RegexIterator( + new RecursiveIteratorIterator( + new RecursiveDirectoryIterator( + $this->_migrationsPath, + FilesystemIterator::SKIP_DOTS + ) + ), + '/\/\d+_.*\.php$/', + RecursiveRegexIterator::MATCH, + RegexIterator::USE_KEY + ) + ) + ); } /**