diff --git a/phpBB/config/default/container/services.yml b/phpBB/config/default/container/services.yml
index 2d4720029d..739341ab49 100644
--- a/phpBB/config/default/container/services.yml
+++ b/phpBB/config/default/container/services.yml
@@ -85,12 +85,21 @@ services:
controller.helper:
class: phpbb\controller\helper
arguments:
+ - '@auth'
+ - '@cache.driver'
+ - '@cron.manager'
+ - '@dbal.conn'
+ - '@dispatcher'
+ - '@language'
- '@template'
- '@user'
- '@config'
- '@symfony_request'
- '@request'
- '@routing.helper'
+ - '%core.adm_relative_path%'
+ - '%core.php_ext%'
+ - '%debug.sql_explain%'
controller.resolver:
class: phpbb\controller\resolver
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 9759eabb5a..eb667eed7e 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -4403,8 +4403,7 @@ function phpbb_generate_debug_output(\phpbb\db\driver\driver_interface $db, \php
*/
function page_footer($run_cron = true, $display_template = true, $exit_handler = true)
{
- global $db, $config, $template, $user, $auth, $cache, $phpEx;
- global $request, $phpbb_dispatcher, $phpbb_admin_path;
+ global $phpbb_dispatcher, $phpbb_container, $template;
// A listener can set this variable to `true` when it overrides this function
$page_footer_override = false;
@@ -4426,55 +4425,10 @@ function page_footer($run_cron = true, $display_template = true, $exit_handler =
return;
}
- phpbb_check_and_display_sql_report($request, $auth, $db);
+ /** @var \phpbb\controller\helper $controller_helper */
+ $controller_helper = $phpbb_container->get('controller.helper');
- $template->assign_vars(array(
- 'DEBUG_OUTPUT' => phpbb_generate_debug_output($db, $config, $auth, $user, $phpbb_dispatcher),
- 'TRANSLATION_INFO' => (!empty($user->lang['TRANSLATION_INFO'])) ? $user->lang['TRANSLATION_INFO'] : '',
- 'CREDIT_LINE' => $user->lang('POWERED_BY', 'phpBB® Forum Software © phpBB Limited'),
-
- 'U_ACP' => ($auth->acl_get('a_') && !empty($user->data['is_registered'])) ? append_sid("{$phpbb_admin_path}index.$phpEx", false, true, $user->session_id) : '')
- );
-
- // Call cron-type script
- $call_cron = false;
- if (!defined('IN_CRON') && !$config['use_system_cron'] && $run_cron && !$config['board_disable'] && !$user->data['is_bot'] && !$cache->get('_cron.lock_check'))
- {
- $call_cron = true;
- $time_now = (!empty($user->time_now) && is_int($user->time_now)) ? $user->time_now : time();
-
- // Any old lock present?
- if (!empty($config['cron_lock']))
- {
- $cron_time = explode(' ', $config['cron_lock']);
-
- // If 1 hour lock is present we do not call cron.php
- if ($cron_time[0] + 3600 >= $time_now)
- {
- $call_cron = false;
- }
- }
- }
-
- // Call cron job?
- if ($call_cron)
- {
- global $phpbb_container;
-
- /* @var $cron \phpbb\cron\manager */
- $cron = $phpbb_container->get('cron.manager');
- $task = $cron->find_one_ready_task();
-
- if ($task)
- {
- $url = $task->get_url();
- $template->assign_var('RUN_CRON_TASK', '
');
- }
- else
- {
- $cache->put('_cron.lock_check', true, 60);
- }
- }
+ $controller_helper->display_footer($run_cron);
/**
* Execute code and/or modify output before displaying the template.
diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php
index 58a4a492f8..8e8cd135f6 100644
--- a/phpBB/phpbb/controller/helper.php
+++ b/phpBB/phpbb/controller/helper.php
@@ -13,6 +13,18 @@
namespace phpbb\controller;
+use phpbb\auth\auth;
+use \phpbb\cache\driver\driver_interface as cache_interface;
+use phpbb\config\config;
+use phpbb\cron\manager;
+use phpbb\db\driver\driver_interface;
+use phpbb\event\dispatcher;
+use phpbb\language\language;
+use phpbb\request\request_interface;
+use phpbb\routing\helper as routing_helper;
+use phpbb\symfony_request;
+use phpbb\template\template;
+use phpbb\user;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
@@ -22,53 +34,101 @@ use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
*/
class helper
{
+ /** @var auth */
+ protected $auth;
+
+ /** @var cache_interface */
+ protected $cache;
+
+ /** @var manager */
+ protected $cron_manager;
+
+ /** @var driver_interface */
+ protected $db;
+
+ /** @var dispatcher */
+ protected $dispatcher;
+
+ /** @var language */
+ protected $language;
+
/**
* Template object
- * @var \phpbb\template\template
+ * @var template
*/
protected $template;
/**
* User object
- * @var \phpbb\user
+ * @var user
*/
protected $user;
/**
* config object
- * @var \phpbb\config\config
+ * @var config
*/
protected $config;
- /* @var \phpbb\symfony_request */
+ /* @var symfony_request */
protected $symfony_request;
- /* @var \phpbb\request\request_interface */
+ /* @var request_interface */
protected $request;
/**
- * @var \phpbb\routing\helper
+ * @var routing_helper
*/
protected $routing_helper;
+ /** @var string */
+ protected $admin_path;
+
+ /** @var string */
+ protected $php_ext;
+
+ /** @var bool $sql_explain */
+ protected $sql_explain;
+
/**
* Constructor
*
- * @param \phpbb\template\template $template Template object
- * @param \phpbb\user $user User object
- * @param \phpbb\config\config $config Config object
- * @param \phpbb\symfony_request $symfony_request Symfony Request object
- * @param \phpbb\request\request_interface $request phpBB request object
- * @param \phpbb\routing\helper $routing_helper Helper to generate the routes
+ * @param auth $auth Auth object
+ * @param cache_interface $cache
+ * @param manager $cron_manager
+ * @param driver_interface $db Dbal object
+ * @param dispatcher $dispatcher
+ * @param language $language
+ * @param template $template Template object
+ * @param user $user User object
+ * @param config $config Config object
+ * @param symfony_request $symfony_request Symfony Request object
+ * @param request_interface $request phpBB request object
+ * @param routing_helper $routing_helper Helper to generate the routes
+ * @param string $admin_path Admin path
+ * @param string $php_ext PHP extension
+ * @param bool $sql_explain Flag whether to display sql explain
*/
- public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, \phpbb\symfony_request $symfony_request, \phpbb\request\request_interface $request, \phpbb\routing\helper $routing_helper)
+ public function __construct(auth $auth, cache_interface $cache, manager $cron_manager, driver_interface $db,
+ dispatcher $dispatcher, language $language, template $template, user $user, config $config,
+ symfony_request $symfony_request, request_interface $request, routing_helper $routing_helper,
+ $admin_path, $php_ext, $sql_explain = false)
{
+ $this->auth = $auth;
+ $this->cache = $cache;
+ $this->cron_manager = $cron_manager;
+ $this->db = $db;
+ $this->dispatcher = $dispatcher;
+ $this->language = $language;
$this->template = $template;
$this->user = $user;
$this->config = $config;
$this->symfony_request = $symfony_request;
$this->request = $request;
$this->routing_helper = $routing_helper;
+ $this->admin_path = $admin_path;
+ $this->php_ext = $php_ext;
+ $this->sql_explain = $sql_explain;
}
/**
@@ -92,7 +152,7 @@ class helper
'body' => $template_file,
));
- page_footer(true, false, false);
+ $this->display_footer();
$headers = !empty($this->user->data['is_bot']) ? array('X-PHPBB-IS-BOT' => 'yes') : array();
@@ -142,8 +202,8 @@ class helper
public function message($message, array $parameters = array(), $title = 'INFORMATION', $code = 200)
{
array_unshift($parameters, $message);
- $message_text = call_user_func_array(array($this->user, 'lang'), $parameters);
- $message_title = $this->user->lang($title);
+ $message_text = call_user_func_array(array($this->language, 'lang'), $parameters);
+ $message_title = $this->language->lang($title);
if ($this->request->is_ajax())
{
@@ -174,7 +234,7 @@ class helper
*
* @param int $time time in seconds, when redirection should occur
* @param string $url the URL where the user should be redirected
- * @return null
+ * @return void
*/
public function assign_meta_refresh_var($time, $url)
{
@@ -192,4 +252,86 @@ class helper
{
return generate_board_url(true) . $this->request->escape($this->symfony_request->getRequestUri(), true);
}
+
+ /**
+ * Handle display actions for footer, e.g. SQL report and credit line
+ *
+ * @param bool $run_cron Flag whether cron should be run
+ *
+ * @return void
+ */
+ public function display_footer($run_cron = true)
+ {
+ $this->display_sql_report();
+
+ $this->template->assign_vars([
+ 'DEBUG_OUTPUT' => phpbb_generate_debug_output($this->db, $this->config, $this->auth, $this->user, $this->dispatcher),
+ 'TRANSLATION_INFO' => $this->language->is_set('TRANSLATION_INFO') ? $this->language->lang('TRANSLATION_INFO') : '',
+ 'CREDIT_LINE' => $this->language->lang('POWERED_BY', 'phpBB® Forum Software © phpBB Limited'),
+
+ 'U_ACP' => ($this->auth->acl_get('a_') && !empty($this->user->data['is_registered'])) ? append_sid("{$this->admin_path}index.{$this->php_ext}", false, true, $this->user->session_id) : '',
+ ]);
+
+ if ($run_cron)
+ {
+ $this->set_cron_task();
+ }
+ }
+
+ /**
+ * Display SQL report
+ *
+ * @return void
+ */
+ protected function display_sql_report()
+ {
+ if ($this->sql_explain && $this->request->variable('explain', false) && $this->auth->acl_get('a_'))
+ {
+ $this->db->sql_report('display');
+ }
+ }
+
+ /**
+ * Set cron task for footer
+ *
+ * @return void
+ */
+ protected function set_cron_task()
+ {
+ // Call cron-type script
+ $call_cron = false;
+ if (!defined('IN_CRON') && !$this->config['use_system_cron'] && !$this->config['board_disable'] && !$this->user->data['is_bot'] && !$this->cache->get('_cron.lock_check'))
+ {
+ $call_cron = true;
+ $time_now = (!empty($this->user->time_now) && is_int($this->user->time_now)) ? $this->user->time_now : time();
+
+ // Any old lock present?
+ if (!empty($this->config['cron_lock']))
+ {
+ $cron_time = explode(' ', $this->config['cron_lock']);
+
+ // If 1 hour lock is present we do not set a cron task
+ if ($cron_time[0] + 3600 >= $time_now)
+ {
+ $call_cron = false;
+ }
+ }
+ }
+
+ // Call cron job?
+ if ($call_cron)
+ {
+ $task = $this->cron_manager->find_one_ready_task();
+
+ if ($task)
+ {
+ $url = $task->get_url();
+ $this->template->assign_var('RUN_CRON_TASK', '
');
+ }
+ else
+ {
+ $this->cache->put('_cron.lock_check', true, 60);
+ }
+ }
+ }
}
diff --git a/phpBB/phpbb/event/kernel_terminate_subscriber.php b/phpBB/phpbb/event/kernel_terminate_subscriber.php
index f0d0a2f595..eb7b16a7aa 100644
--- a/phpBB/phpbb/event/kernel_terminate_subscriber.php
+++ b/phpBB/phpbb/event/kernel_terminate_subscriber.php
@@ -25,10 +25,12 @@ class kernel_terminate_subscriber implements EventSubscriberInterface
* primarily cleanup stuff.
*
* @param PostResponseEvent $event
- * @return null
+ * @return void
*/
public function on_kernel_terminate(PostResponseEvent $event)
{
+ garbage_collection();
+
exit_handler();
}
diff --git a/tests/controller/common_helper_route.php b/tests/controller/common_helper_route.php
index bdaf8ee682..a357eddfe9 100644
--- a/tests/controller/common_helper_route.php
+++ b/tests/controller/common_helper_route.php
@@ -13,21 +13,33 @@
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
-abstract class phpbb_controller_common_helper_route extends phpbb_test_case
+abstract class phpbb_controller_common_helper_route extends phpbb_database_test_case
{
- protected $root_path;
- private $user;
- private $config;
- private $template;
- private $extension_manager;
- private $request;
- private $symfony_request;
- private $provider;
- private $filesystem;
- private $phpbb_path_helper;
- private $helper;
- private $router;
- private $routing_helper;
+ protected $root_path;
+ private $auth;
+ private $cache;
+ private $db;
+ private $dispatcher;
+ private $language;
+ private $admin_path;
+ private $php_ext;
+ private $user;
+ private $config;
+ private $template;
+ private $extension_manager;
+ private $request;
+ private $symfony_request;
+ private $provider;
+ private $filesystem;
+ private $phpbb_path_helper;
+ private $helper;
+ private $router;
+ private $routing_helper;
+
+ public function getDataSet()
+ {
+ return $this->createXMLDataSet(dirname(__FILE__) . '/../fixtures/empty.xml');
+ }
public function setUp(): void
{
@@ -141,6 +153,13 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
);
$resources_locator = new \phpbb\routing\resources_locator\default_resources_locator(dirname(__FILE__) . '/', PHPBB_ENVIRONMENT, $this->extension_manager);
$this->router = new phpbb_mock_router($container, $resources_locator, $loader, dirname(__FILE__) . '/', 'php', false);
+ $this->auth = new \phpbb\auth\auth();
+ $this->cache = new \phpbb\cache\driver\dummy();
+ $this->db = $this->new_dbal();
+ $this->dispatcher = new phpbb_mock_event_dispatcher();
+ $this->language = new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx));
+ $this->admin_path = $phpbb_root_path . 'adm/';
+ $this->php_ext = $phpEx;
// Set correct current phpBB root path
$this->root_path = $this->get_phpbb_root_path();
@@ -186,7 +205,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id), $description);
}
@@ -230,7 +264,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id), $description);
}
@@ -274,7 +323,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::ABSOLUTE_URL), $description);
}
@@ -318,7 +382,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::RELATIVE_PATH), $description);
}
@@ -362,7 +441,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '0'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::NETWORK_PATH), $description);
}
@@ -406,7 +500,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::ABSOLUTE_URL), $description);
}
@@ -447,7 +556,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(array('enable_mod_rewrite' => '1'));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::RELATIVE_PATH), $description);
}
@@ -491,7 +615,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
{
$this->config = new \phpbb\config\config(['enable_mod_rewrite' => '1']);
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route($route, $params, $is_amp, $session_id, UrlGeneratorInterface::NETWORK_PATH), $description);
}
@@ -523,7 +662,22 @@ abstract class phpbb_controller_common_helper_route extends phpbb_test_case
));
$this->routing_helper = new \phpbb\routing\helper($this->config, $this->router, $this->symfony_request, $this->request, $this->filesystem, $this->root_path, 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $this->symfony_request, $this->request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ $this->auth,
+ $this->cache,
+ new \phpbb\cron\manager([], $this->routing_helper, $this->root_path, 'php'),
+ $this->db,
+ $this->dispatcher,
+ $this->language,
+ $this->template,
+ $this->user,
+ $this->config,
+ $this->symfony_request,
+ $this->request,
+ $this->routing_helper,
+ $this->admin_path,
+ $this->php_ext
+ );
static::assertEquals($expected, $this->helper->route('controller1', array(), false, false, $type));
}
}
diff --git a/tests/pagination/pagination_test.php b/tests/pagination/pagination_test.php
index 073ba1d5cd..7ee7bc14d7 100644
--- a/tests/pagination/pagination_test.php
+++ b/tests/pagination/pagination_test.php
@@ -42,7 +42,6 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
$filesystem = new \phpbb\filesystem\filesystem();
$manager = new phpbb_mock_extension_manager(dirname(__FILE__) . '/', array());
-
$loader = new \Symfony\Component\Routing\Loader\YamlFileLoader(
new \phpbb\routing\file_locator($filesystem, dirname(__FILE__) . '/')
);
@@ -58,8 +57,27 @@ class phpbb_pagination_pagination_test extends phpbb_template_template_test_case
$request
);
+ $db = $this->getMockBuilder('\phpbb\db\driver\mysqli')
+ ->disableOriginalConstructor()
+ ->getMock();
+
$this->routing_helper = new \phpbb\routing\helper($this->config, $router, $symfony_request, $request, $filesystem, '', 'php');
- $this->helper = new phpbb_mock_controller_helper($this->template, $this->user, $this->config, $symfony_request, $request, $this->routing_helper);
+ $this->helper = new phpbb_mock_controller_helper(
+ new \phpbb\auth\auth(),
+ new \phpbb\cache\driver\dummy(),
+ new \phpbb\cron\manager([], $this->routing_helper, '', 'php'),
+ $db,
+ new phpbb_mock_event_dispatcher(),
+ new \phpbb\language\language(new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx)),
+ $this->template,
+ $this->user,
+ $this->config,
+ $symfony_request,
+ $request,
+ $this->routing_helper,
+ '',
+ 'php'
+ );
$this->pagination = new \phpbb\pagination($this->template, $this->user, $this->helper, $phpbb_dispatcher);
}