public function test_resolve_cached() { $cache_map = array('class_loader___phpbb__' => array('\\phpbb\\a\\cached_name' => 'a/cached_name'), 'class_loader___' => array('\\phpbb\\ext\\foo' => 'foo')); $cache = new phpbb_mock_cache($cache_map); $prefix = dirname(__FILE__) . '/'; $class_loader = new \phpbb\class_loader('phpbb\\', $prefix . 'phpbb/', 'php', $cache); $class_loader_ext = new \phpbb\class_loader('\\', $prefix . 'phpbb/', 'php', $cache); $prefix .= 'phpbb/'; $this->assertEquals($prefix . 'dir/class_name.php', $class_loader->resolve_path('\\phpbb\\dir\\class_name'), 'Class in a directory'); $this->assertFalse($class_loader->resolve_path('\\phpbb\\ext\\foo')); $this->assertFalse($class_loader_ext->resolve_path('\\phpbb\\a\\cached_name')); $this->assertEquals($prefix . 'a/cached_name.php', $class_loader->resolve_path('\\phpbb\\a\\cached_name'), 'Cached class found'); $this->assertEquals($prefix . 'foo.php', $class_loader_ext->resolve_path('\\phpbb\\ext\\foo'), 'Cached class found in alternative loader'); $cache_map['class_loader___phpbb__']['\\phpbb\\dir\\class_name'] = 'dir/class_name'; $cache->check($this, $cache_map); }
/** * Gets the 'class_loader.ext' service. * * This service is shared. * This method always returns the same instance of the service. * * @return \phpbb\class_loader A phpbb\class_loader instance. */ protected function getClassLoader_ExtService() { $this->services['class_loader.ext'] = $instance = new \phpbb\class_loader('\\', './ext/', 'php'); $instance->register(); $instance->set_cache($this->get('cache.driver')); return $instance; }
exit(1); } define('IN_PHPBB', true); define('IN_INSTALL', true); define('PHPBB_ENVIRONMENT', 'production'); $phpbb_root_path = __DIR__ . '/../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); // // Let's do the common.php logic // require($phpbb_root_path . 'includes/startup.' . $phpEx); require($phpbb_root_path . 'phpbb/class_loader.' . $phpEx); $phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx); $phpbb_class_loader->register(); // In case $phpbb_adm_relative_path is not set (in case of an update), use the default. $phpbb_adm_relative_path = (isset($phpbb_adm_relative_path)) ? $phpbb_adm_relative_path : 'adm/'; $phpbb_admin_path = (defined('PHPBB_ADMIN_PATH')) ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path; // Include files require($phpbb_root_path . 'includes/functions.' . $phpEx); require($phpbb_root_path . 'includes/functions_content.' . $phpEx); include($phpbb_root_path . 'includes/functions_compatibility.' . $phpEx); require($phpbb_root_path . 'includes/functions_user.' . $phpEx); require($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx); // Set PHP error handler to ours set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler');
$url .= $script_path; header('Location: ' . $url); die; } // In case $phpbb_adm_relative_path is not set (in case of an update), use the default. $phpbb_adm_relative_path = isset($phpbb_adm_relative_path) ? $phpbb_adm_relative_path : 'adm/'; $phpbb_admin_path = defined('PHPBB_ADMIN_PATH') ? PHPBB_ADMIN_PATH : $phpbb_root_path . $phpbb_adm_relative_path; // Include files require $phpbb_root_path . 'includes/functions.' . $phpEx; require 'D:\\Dev\\UniServerZ\\www\\qwp\\wp-content\\plugins\\wp-phpbb-unicorn\\inc/cache/functions_content.' . $phpEx; include $phpbb_root_path . 'includes/functions_compatibility.' . $phpEx; require $phpbb_root_path . 'includes/constants.' . $phpEx; require $phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx; // Set PHP error handler to ours set_error_handler(defined('PHPBB_MSG_HANDLER') ? PHPBB_MSG_HANDLER : 'msg_handler'); $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx); $phpbb_class_loader_ext->register(); phpbb_load_extensions_autoloaders($phpbb_root_path); // Set up container $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_config_php_file, $phpbb_root_path, $phpEx); $phpbb_container = $phpbb_container_builder->get_container(); $phpbb_class_loader->set_cache($phpbb_container->get('cache.driver')); $phpbb_class_loader_ext->set_cache($phpbb_container->get('cache.driver')); require $phpbb_root_path . 'includes/compatibility_globals.' . $phpEx; // Add own hook handler require $phpbb_root_path . 'includes/hooks/index.' . $phpEx; $phpbb_hook = new phpbb_hook(array('exit_handler', 'phpbb_user_session_handler', 'append_sid', array('template', 'display'))); $phpbb_hook_finder = $phpbb_container->get('hook_finder'); foreach ($phpbb_hook_finder->find() as $hook) { @(include $phpbb_root_path . 'includes/hooks/' . $hook . '.' . $phpEx); }
require $phpbb_root_path . 'phpbb/class_loader.' . $phpEx; $phpbb_class_loader = new \phpbb\class_loader('phpbb\\', "{$phpbb_root_path}phpbb/", $phpEx); $phpbb_class_loader->register(); $phpbb_config_php_file = new \phpbb\config_php_file($phpbb_root_path, $phpEx); extract($phpbb_config_php_file->get_all()); require $phpbb_root_path . 'includes/constants.' . $phpEx; require $phpbb_root_path . 'includes/functions.' . $phpEx; require $phpbb_root_path . 'includes/functions_admin.' . $phpEx; require $phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx; $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_config_php_file, $phpbb_root_path, $phpEx); $phpbb_container_builder->set_dump_container(false); $input = new ArgvInput(); if ($input->hasParameterOption(array('--safe-mode'))) { $phpbb_container_builder->set_use_extensions(false); $phpbb_container_builder->set_dump_container(false); } else { $phpbb_class_loader_ext = new \phpbb\class_loader('\\', "{$phpbb_root_path}ext/", $phpEx); $phpbb_class_loader_ext->register(); phpbb_load_extensions_autoloaders($phpbb_root_path); } $phpbb_container = $phpbb_container_builder->get_container(); $phpbb_container->get('request')->enable_super_globals(); require $phpbb_root_path . 'includes/compatibility_globals.' . $phpEx; $user = $phpbb_container->get('user'); $user->data['user_id'] = ANONYMOUS; $user->ip = '127.0.0.1'; $user->add_lang('acp/common'); $user->add_lang('cli'); $application = new \phpbb\console\application('phpBB Console', PHPBB_VERSION, $user); $application->register_container_commands($phpbb_container->get('console.command_collection')); $application->run($input);