diff --git a/src/libraries/Migration.php b/src/libraries/Migration.php index 9ee92b6..4d06a7a 100644 --- a/src/libraries/Migration.php +++ b/src/libraries/Migration.php @@ -289,10 +289,21 @@ public function version($target_version) $this->_error_string = sprintf($this->lang->line('migration_class_doesnt_exist'), $class); return FALSE; } - elseif ( ! method_exists($class, $method) OR ! (new ReflectionMethod($class, $method))->isPublic()) + else { - $this->_error_string = sprintf($this->lang->line('migration_missing_'.$method.'_method'), $class); - return FALSE; + $exists = method_exists($class, $method); + + if ($exists) + { + $method = new ReflectionMethod($class, $method); + $exists = $method->isPublic(); + } + + if (! $exists) + { + $this->_error_string = sprintf($this->lang->line('migration_missing_'.$method.'_method'), $class); + return FALSE; + } } $pending[$number] = array($class, $method);