mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/14434] Remove recursion to simplify is_migration method
PHPBB3-14434
This commit is contained in:
parent
47d8aeebde
commit
3bd8a2ba19
3 changed files with 17 additions and 26 deletions
|
@ -79,8 +79,7 @@ class schema_generator
|
|||
{
|
||||
foreach ($migrations as $key => $migration_class)
|
||||
{
|
||||
// Unset classes that do not exist or do not extend the
|
||||
// abstract class phpbb\db\migration\migration
|
||||
// Unset classes that are not a valid migration
|
||||
if (\phpbb\db\migrator::is_migration($migration_class) === false)
|
||||
{
|
||||
unset($migrations[$key]);
|
||||
|
|
|
@ -861,31 +861,16 @@ class migrator
|
|||
/**
|
||||
* Check if a class is a migration.
|
||||
*
|
||||
* @param mixed $migration An array of migration name strings, or
|
||||
* a single migration name string.
|
||||
* @return bool Returns true or false for a single migration.
|
||||
* If an array was received, non-migrations will
|
||||
* be removed from the array, and false is returned.
|
||||
* @param string $migration A migration class name
|
||||
* @return bool Return true if class is a migration, false otherwise
|
||||
*/
|
||||
static public function is_migration(&$migration)
|
||||
static public function is_migration($migration)
|
||||
{
|
||||
if (is_array($migration))
|
||||
{
|
||||
foreach ($migration as $key => $name)
|
||||
{
|
||||
if (self::is_migration($name))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
unset($migration[$key]);
|
||||
}
|
||||
}
|
||||
else if (class_exists($migration))
|
||||
if (class_exists($migration))
|
||||
{
|
||||
// Migration classes should extend the abstract class
|
||||
// phpbb\db\migration\migration which implements the
|
||||
// migration_interface and be instantiable.
|
||||
// phpbb\db\migration\migration (which implements the
|
||||
// migration_interface) and be instantiable.
|
||||
$reflector = new \ReflectionClass($migration);
|
||||
if ($reflector->implementsInterface('\phpbb\db\migration\migration_interface') && $reflector->isInstantiable())
|
||||
{
|
||||
|
|
|
@ -137,9 +137,16 @@ class base implements \phpbb\extension\extension_interface
|
|||
|
||||
$migrations = $this->extension_finder->get_classes_from_files($migrations);
|
||||
|
||||
// Unset classes that do not exist or do not extend the
|
||||
// abstract class phpbb\db\migration\migration
|
||||
\phpbb\db\migrator::is_migration($migrations);
|
||||
// Unset classes that are not a valid migration
|
||||
foreach ($migrations as $key => $migration)
|
||||
{
|
||||
if (\phpbb\db\migrator::is_migration($migration) === true)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
unset($migrations[$key]);
|
||||
}
|
||||
|
||||
return $migrations;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue