aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/phpbb/extension/base.php33
-rw-r--r--tests/extension/extension_base_test.php2
2 files changed, 20 insertions, 15 deletions
diff --git a/phpBB/phpbb/extension/base.php b/phpBB/phpbb/extension/base.php
index 8e717e1beb..ed190f6aa5 100644
--- a/phpBB/phpbb/extension/base.php
+++ b/phpBB/phpbb/extension/base.php
@@ -121,9 +121,11 @@ class base implements \phpbb\extension\extension_interface
/**
* Get the list of migration files from this extension
*
+ * @var bool $validate_classes Whether or not to check that the migration
+ * class exists and extends the base migration class.
* @return array
*/
- protected function get_migration_file_list()
+ protected function get_migration_file_list($validate_classes = true)
{
if ($this->migrations !== false)
{
@@ -137,23 +139,26 @@ class base implements \phpbb\extension\extension_interface
$migrations = $this->extension_finder->get_classes_from_files($migrations);
- foreach ($migrations as $key => $migration)
+ if ($validate_classes)
{
- // If the class exists and is a subclass of the
- // \phpbb\db\migration\migration abstract class
- // we skip it.
-
- // 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;
+ foreach ($migrations as $key => $migration)
+ {
+ // If the class exists and is a subclass of the
+ // \phpbb\db\migration\migration abstract class
+ // we skip it.
+
+ // 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]);
}
-
- unset($migrations[$key]);
}
return $migrations;
diff --git a/tests/extension/extension_base_test.php b/tests/extension/extension_base_test.php
index eee38186db..898c11d902 100644
--- a/tests/extension/extension_base_test.php
+++ b/tests/extension/extension_base_test.php
@@ -74,6 +74,6 @@ class phpbb_extension_extension_base_test extends phpbb_test_case
public function test_suffix_get_classes($extension_name, $expected)
{
$extension = $this->extension_manager->get_extension($extension_name);
- $this->assertEquals($expected, self::$reflection_method_get_migration_file_list->invoke($extension));
+ $this->assertEquals($expected, self::$reflection_method_get_migration_file_list->invoke($extension, false));
}
}