You are correct but the existence of the following page is highly misleading https://area51.phpbb.com/docs/code/3.2. ... vider.html
Code: Select all
global $db, $config, $user, $template, $request, $auth, $cache;
global $phpbb_root_path, $phpbb_admin_path, $phpEx;
global $phpbb_extension_manager, $table_prefix, $phpbb_container, $phpbb_path_helper;
$provider = new \phpbb\controller\ provider();
$symphony_request = new \phpbb\ symfony_request($request);
$filesystem = new \phpbb\ filesystem();
$helper = new \phpbb\controller\ helper($template, $user, $config, $provider, $phpbb_extension_manager, $symphony_request, $request, $filesystem, $phpbb_root_path, $phpEx);
Code: Select all
$mock_config = new \phpbb\config\config(array('force_server_vars' => false, 'enable_mod_rewrite' => ''));
$mock_router = $this->getMockBuilder('\\phpbb\\routing\\router')->setMethods(array('setContext', 'generate'))->disableOriginalConstructor()->getMock();
$mock_router->method('setContext')->willReturn(true);
$mock_router->method('generate')->willReturn('foobar');
$routing_helper = new \phpbb\routing\helper($mock_config, $mock_router, new \phpbb\symfony_request($request), $request, new \phpbb\filesystem\filesystem(), $phpbb_root_path, $phpEx);
$helper = new \phpbb\controller\ helper($template, $user, $config, $symphony_request, $request, $routing_helper);
Code: Select all
global $phpbb_container
$helper = $phpbb_container->get('controller.helper');
$route = $helper->route('route_to_extension_path');
Yes thanks, I was planning on using that when I upgraded to 3.2 but unfortunately its not flexible enough for multiple feeds as it doesn't have individual settings for each feed. For a small number of feeds I would recommend it, it worked well when I did a trial.Lumpy Burgertushie wrote: ↑Wed Jan 23, 2019 8:03 pm have you looked at this:
viewtopic.php?f=456&t=2411596
Brilliant, I can't thank you enough for that, just needed the $helper line you quoted.mrgoldy wrote: ↑Wed Jan 23, 2019 6:11 pm You're still not really explaining what you're trying to achieve.
Moreover, mocking a class is used for testing, not for a live environment.
If you just want the controller helper to generate a route, you can do something like this:Code: Select all
global $phpbb_container $helper = $phpbb_container->get('controller.helper'); $route = $helper->route('route_to_extension_path');