/** * Find the last morph function in the previous migration files * * @param VersionItem $version * @param string $tableName * @return null|\Phalcon\Mvc\Model\Migration * * @throws Exception */ private static function createPrevClassWithMorphMethod(VersionItem $version, $tableName) { $prevVersions = array(); $iterator = new \DirectoryIterator(self::$_migrationPath); foreach ($iterator as $fileinfo) { if ($fileinfo->isDir() && preg_match('/[a-z0-9](\\.[a-z0-9]+)+/', $fileinfo->getFilename(), $matches)) { $prevVersion = new VersionItem($matches[0], 3); if ($prevVersion->getStamp() <= $version->getStamp()) { $prevVersions[] = $prevVersion; } } } $prevVersions = VersionItem::sortDesc($prevVersions); foreach ($prevVersions as $prevVersion) { $migration = self::createClass($prevVersion, $tableName); if (!is_null($migration) && method_exists($migration, 'morph')) { return $migration; } } return null; }
/** * Find the last morph function in the previous migration files * * @param VersionItem $toVersion * @param string $tableName * @return null|\Phalcon\Mvc\Model\Migration * * @throws Exception */ private static function createPrevClassWithMorphMethod(VersionItem $toVersion, $tableName) { $prevVersions = array(); $versions = self::scanForVersions(self::$_migrationPath); foreach ($versions as $prevVersion) { if ($prevVersion->getStamp() <= $toVersion->getStamp()) { $prevVersions[] = $prevVersion; } } $prevVersions = VersionItem::sortDesc($prevVersions); foreach ($prevVersions as $prevVersion) { $migration = self::createClass($prevVersion, $tableName); if (is_object($migration) && method_exists($migration, 'morph')) { return $migration; } } return null; }