diff options
| author | Joas Schilling <nickvergessen@gmx.de> | 2013-03-05 18:26:01 +0100 |
|---|---|---|
| committer | Joas Schilling <nickvergessen@gmx.de> | 2013-03-05 18:26:01 +0100 |
| commit | 923c0709dbd44f68d76979298cf7d2c732e19494 (patch) | |
| tree | 190c6fbc1dae25a725f504572651f44798e3f6ed /phpBB/includes/extension/manager.php | |
| parent | 6c6912f9e65f0683a806548bdc1a3526ed9ae107 (diff) | |
| parent | 2bf98dcead733a6a2daf9fa0a5d3084ed4ebef5c (diff) | |
| download | forums-923c0709dbd44f68d76979298cf7d2c732e19494.tar forums-923c0709dbd44f68d76979298cf7d2c732e19494.tar.gz forums-923c0709dbd44f68d76979298cf7d2c732e19494.tar.bz2 forums-923c0709dbd44f68d76979298cf7d2c732e19494.tar.xz forums-923c0709dbd44f68d76979298cf7d2c732e19494.zip | |
Merge branch 'develop' of https://github.com/phpbb/phpbb3 into feature/softdelete-1-permission
* 'develop' of https://github.com/phpbb/phpbb3: (234 commits)
[ticket/11398] Correctly call permission_set method in permission tool
[ticket/11394] Relax Migration Tools
[ticket/11386] Fix missing ;
[ticket/10714] Get log from container in install, update and download/file
[feature/avatars] Update module_auth of ucp module and fix small issues
[ticket/11396] Rename insert_migration to set_migration_state
[ticket/11395] Prevent acp_modules::get_modules_info from reincluding files
[ticket/11393] Give more information on database updater
[ticket/11386] Send list of migrations instead of using load_migrations
[feature/avatars] Add migrations data file for avatars
[feature/avatars] Reduce module auth of ucp avatar settings
[ticket/10714] Use $phpbb_adm_relative_path instead of hardcoded adm/
[ticket/10714] Logs are disabled for this page call only
[ticket/10411] Fix call to function on non-object $db->...()
[ticket/10411] Remove ajax delete, so the page is refreshed
[feature/avatars] Auto-clear avatar dimensions when first changing avatars
[ticket/10411] Update schema file with new table and remove the column
[ticket/10411] Add unit tests for move() with values >1
[ticket/10411] Add migrations file for teampage table
[ticket/10411] Revert database_update.php changes from for easier update
...
Diffstat (limited to 'phpBB/includes/extension/manager.php')
| -rw-r--r-- | phpBB/includes/extension/manager.php | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/phpBB/includes/extension/manager.php b/phpBB/includes/extension/manager.php index 0d760681b9..44a30c6280 100644 --- a/phpBB/includes/extension/manager.php +++ b/phpBB/includes/extension/manager.php @@ -43,18 +43,20 @@ class phpbb_extension_manager * @param ContainerInterface $container A container * @param phpbb_db_driver $db A database connection * @param phpbb_config $config phpbb_config + * @param phpbb_db_migrator $migrator * @param string $extension_table The name of the table holding extensions * @param string $phpbb_root_path Path to the phpbb includes directory. * @param string $php_ext php file extension * @param phpbb_cache_driver_interface $cache A cache instance or null * @param string $cache_name The name of the cache variable, defaults to _ext */ - public function __construct(ContainerInterface $container, phpbb_db_driver $db, phpbb_config $config, $extension_table, $phpbb_root_path, $php_ext = '.php', phpbb_cache_driver_interface $cache = null, $cache_name = '_ext') + public function __construct(ContainerInterface $container, phpbb_db_driver $db, phpbb_config $config, phpbb_db_migrator $migrator, $extension_table, $phpbb_root_path, $php_ext = '.php', phpbb_cache_driver_interface $cache = null, $cache_name = '_ext') { $this->container = $container; $this->phpbb_root_path = $phpbb_root_path; $this->db = $db; $this->config = $config; + $this->migrator = $migrator; $this->cache = $cache; $this->php_ext = $php_ext; $this->extension_table = $extension_table; @@ -69,14 +71,6 @@ class phpbb_extension_manager } /** - * Set migrator (get around circular reference) - */ - public function set_migrator(phpbb_db_migrator $migrator) - { - $this->migrator = $migrator; - } - - /** * Loads all extension information from the database * * @return null @@ -528,13 +522,27 @@ class phpbb_extension_manager */ protected function handle_migrations($extension_name, $mode) { - $migrations_path = $this->phpbb_root_path . $this->get_extension_path($extension_name) . 'migrations/'; - if (!file_exists($migrations_path) || !is_dir($migrations_path)) + $extensions = array( + $extension_name => $this->phpbb_root_path . $this->get_extension_path($extension_name), + ); + + $finder = $this->get_finder(); + $migrations = array(); + $file_list = $finder + ->extension_directory('/migrations') + ->find_from_paths($extensions); + + if (empty($file_list)) { return true; } - $migrations = $this->migrator->load_migrations($migrations_path); + foreach ($file_list as $file) + { + $migrations[$file['named_path']] = $file['ext_name']; + } + $migrations = $finder->get_classes_from_files($migrations); + $this->migrator->set_migrations($migrations); // What is a safe limit of execution time? Half the max execution time should be safe. $safe_time_limit = (ini_get('max_execution_time') / 2); |
