[ticket/13733] Properly handle nonexistent classes as well

PHPBB3-13733
This commit is contained in:
David King 2015-05-23 20:13:23 -04:00
parent 9e6f9c8a64
commit 4ecc13af83

View file

@ -139,11 +139,21 @@ class base implements \phpbb\extension\extension_interface
foreach ($migrations as $key => $migration) foreach ($migrations as $key => $migration)
{ {
// If the class doesn't exist OR the class does not extend the migration class // If the class exists and is a subclass of the
// we need to skip it. // \phpbb\db\migration\migration abstract class
if (!class_exists($migration) || ($reflector = new \ReflectionClass($migration) && !$reflector->isSubclassOf('\phpbb\db\migration\migration'))) { // we skip it.
unset($migrations[$key]);
// Otherwise, i.e. if it doesn't exist or it is
// not an extend the abstract class, we unset it
if (class_exists($migration)) {
$reflector = new \ReflectionClass($migration);
if ($reflector->isSubclassOf('\phpbb\db\migration\migration')) {
continue;
}
} }
unset($migrations[$key]);
} }
return $migrations; return $migrations;