mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 04:18:52 +00:00
Merge pull request #3626 from imkingdavid/ticket/13733
[ticket/13733] Allow non-migration files inside migrations folder
This commit is contained in:
commit
0178c27092
2 changed files with 28 additions and 2 deletions
|
@ -121,9 +121,11 @@ class base implements \phpbb\extension\extension_interface
|
||||||
/**
|
/**
|
||||||
* Get the list of migration files from this extension
|
* 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
|
* @return array
|
||||||
*/
|
*/
|
||||||
protected function get_migration_file_list()
|
protected function get_migration_file_list($validate_classes = true)
|
||||||
{
|
{
|
||||||
if ($this->migrations !== false)
|
if ($this->migrations !== false)
|
||||||
{
|
{
|
||||||
|
@ -137,6 +139,30 @@ class base implements \phpbb\extension\extension_interface
|
||||||
|
|
||||||
$migrations = $this->extension_finder->get_classes_from_files($migrations);
|
$migrations = $this->extension_finder->get_classes_from_files($migrations);
|
||||||
|
|
||||||
|
if ($validate_classes)
|
||||||
|
{
|
||||||
|
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') && $reflector->isInstantiable())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
unset($migrations[$key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $migrations;
|
return $migrations;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,6 @@ class phpbb_extension_extension_base_test extends phpbb_test_case
|
||||||
public function test_suffix_get_classes($extension_name, $expected)
|
public function test_suffix_get_classes($extension_name, $expected)
|
||||||
{
|
{
|
||||||
$extension = $this->extension_manager->get_extension($extension_name);
|
$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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue