Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 57 |
| update | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
42 | |
0.00% |
0 / 57 |
| __construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 10 |
|||
| handle | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 22 |
|||
| anonymous function | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| <?php | |
| /** | |
| * | |
| * This file is part of the phpBB Forum Software package. | |
| * | |
| * @copyright (c) phpBB Limited <https://www.phpbb.com> | |
| * @license GNU General Public License, version 2 (GPL-2.0) | |
| * | |
| * For full copyright and license information, please see | |
| * the docs/CREDITS.txt file. | |
| * | |
| */ | |
| namespace phpbb\install\controller; | |
| use phpbb\exception\http_exception; | |
| use phpbb\install\helper\install_helper; | |
| use phpbb\install\helper\iohandler\factory; | |
| use phpbb\install\helper\navigation\navigation_provider; | |
| use phpbb\install\installer; | |
| use phpbb\language\language; | |
| use phpbb\request\request_interface; | |
| use phpbb\template\template; | |
| use Symfony\Component\HttpFoundation\StreamedResponse; | |
| /** | |
| * Updater controller | |
| */ | |
| class update | |
| { | |
| /** | |
| * @var helper | |
| */ | |
| protected $controller_helper; | |
| /** | |
| * @var installer | |
| */ | |
| protected $installer; | |
| /** | |
| * @var install_helper | |
| */ | |
| protected $install_helper; | |
| /** | |
| * @var factory | |
| */ | |
| protected $iohandler_factory; | |
| /** | |
| * @var language | |
| */ | |
| protected $language; | |
| /** | |
| * @var navigation_provider | |
| */ | |
| protected $menu_provider; | |
| /** | |
| * @var request_interface | |
| */ | |
| protected $request; | |
| /** | |
| * @var template | |
| */ | |
| protected $template; | |
| /** | |
| * Constructor | |
| * | |
| * @param helper $controller_helper | |
| * @param installer $installer | |
| * @param install_helper $install_helper | |
| * @param factory $iohandler | |
| * @param language $language | |
| * @param navigation_provider $menu_provider | |
| * @param request_interface $request | |
| * @param template $template | |
| */ | |
| public function __construct(helper $controller_helper, installer $installer, install_helper $install_helper, factory $iohandler, language $language, navigation_provider $menu_provider, request_interface $request, template $template) | |
| { | |
| $this->controller_helper = $controller_helper; | |
| $this->installer = $installer; | |
| $this->install_helper = $install_helper; | |
| $this->iohandler_factory = $iohandler; | |
| $this->language = $language; | |
| $this->menu_provider = $menu_provider; | |
| $this->request = $request; | |
| $this->template = $template; | |
| } | |
| /** | |
| * Controller entry point | |
| * | |
| * @return Response|StreamedResponse | |
| * | |
| * @throws http_exception When phpBB is not installed | |
| */ | |
| public function handle() | |
| { | |
| if (!$this->install_helper->is_phpbb_installed()) | |
| { | |
| throw new http_exception(403, 'INSTALL_PHPBB_NOT_INSTALLED'); | |
| } | |
| $this->template->assign_vars(array( | |
| 'U_ACTION' => $this->controller_helper->route('phpbb_installer_update'), | |
| )); | |
| // Set up input-output handler | |
| if ($this->request->is_ajax()) | |
| { | |
| $this->iohandler_factory->set_environment('ajax'); | |
| } | |
| else | |
| { | |
| $this->iohandler_factory->set_environment('nojs'); | |
| } | |
| // Set the appropriate input-output handler | |
| $this->installer->set_iohandler($this->iohandler_factory->get()); | |
| $this->controller_helper->handle_language_select(); | |
| // Render the intro page | |
| if ($this->request->is_ajax()) | |
| { | |
| $installer = $this->installer; | |
| $response = new StreamedResponse(); | |
| $response->setCallback(function() use ($installer) { | |
| $installer->run(); | |
| }); | |
| // Try to bypass any server output buffers | |
| $response->headers->set('X-Accel-Buffering', 'no'); | |
| $response->headers->set('Content-type', 'application/json'); | |
| return $response; | |
| } | |
| else | |
| { | |
| // Set active stage | |
| $this->menu_provider->set_nav_property( | |
| array('update', 0, 'introduction'), | |
| array( | |
| 'selected' => true, | |
| 'completed' => false, | |
| ) | |
| ); | |
| $this->template->assign_vars(array( | |
| 'SHOW_INSTALL_START_FORM' => true, | |
| 'TITLE' => $this->language->lang('UPDATE_INSTALLATION'), | |
| 'CONTENT' => $this->language->lang('UPDATE_INSTALLATION_EXPLAIN'), | |
| )); | |
| /** @var \phpbb\install\helper\iohandler\iohandler_interface $iohandler */ | |
| $iohandler = $this->iohandler_factory->get(); | |
| $this->controller_helper->handle_navigation($iohandler); | |
| return $this->controller_helper->render('installer_update.html', 'UPDATE_INSTALLATION', true); | |
| } | |
| } | |
| } |