mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/11700] Update migrations table for namespaces
PHPBB3-11700
This commit is contained in:
parent
9373c0db96
commit
cbc458e476
1 changed files with 55 additions and 0 deletions
|
@ -25,6 +25,61 @@ class namespaces extends \phpbb\db\migration\migration
|
||||||
(preg_match('#^phpbb_search_#', $this->config['search_type'])),
|
(preg_match('#^phpbb_search_#', $this->config['search_type'])),
|
||||||
array('config.update', array('search_type', str_replace('phpbb_search_', 'phpbb\\search\\', $this->config['search_type']))),
|
array('config.update', array('search_type', str_replace('phpbb_search_', 'phpbb\\search\\', $this->config['search_type']))),
|
||||||
)),
|
)),
|
||||||
|
array('custom', array(array($this, 'update_migrations'))),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function update_migrations()
|
||||||
|
{
|
||||||
|
$table = $this->table_prefix . 'migrations';
|
||||||
|
|
||||||
|
$sql = 'SELECT *
|
||||||
|
FROM migrations';
|
||||||
|
$result = $this->db->sql_query($sql);
|
||||||
|
|
||||||
|
while ($row = $this->db->sql_fetchrow($result))
|
||||||
|
{
|
||||||
|
$migration_name = $row['migration_name'];
|
||||||
|
|
||||||
|
$row['migration_name'] = $this->namespacify($row['migration_name']);
|
||||||
|
|
||||||
|
$depends_on = ($row['migration_depends_on']) ? unserialize($row['migration_depends_on']) : false;
|
||||||
|
|
||||||
|
if ($depends_on)
|
||||||
|
{
|
||||||
|
$depends_on_new = array();
|
||||||
|
|
||||||
|
foreach ($depends_on as $migration)
|
||||||
|
{
|
||||||
|
$depends_on_new[] = $this->namespacify($migration);
|
||||||
|
}
|
||||||
|
|
||||||
|
$depends_on = serialize($depends_on_new);
|
||||||
|
$row['migration_depends_on'] = $depends_on;
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql_update = $this->db->sql_build_array('UPDATE', $row);
|
||||||
|
|
||||||
|
$sql = 'UPDATE ' . MODULES_TABLE . '
|
||||||
|
SET ' . $sql_update . '
|
||||||
|
WHERE module_id = ' . $migration_name;
|
||||||
|
$this->sql_query($sql);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function namespacify($migration_name)
|
||||||
|
{
|
||||||
|
$parts = explode('_', $migration_name);
|
||||||
|
|
||||||
|
$namespace = '';
|
||||||
|
$class = '';
|
||||||
|
|
||||||
|
while (count($parts) > 1 && (!$class || !class_exists($class)))
|
||||||
|
{
|
||||||
|
$namespace = $namespace . '\\' . array_shift($parts);
|
||||||
|
$class = $namespace . '\\' . implode('_', $parts);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $class;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue