Completed
Push — 3.0 ( dabdf7...6f0792 )
by Jeroen
130:21 queued 31:25
created

engine/classes/Elgg/Upgrade/UpgradeController.php (1 issue)

Labels
Severity
1
<?php
2
3
namespace Elgg\Upgrade;
4
5
use Elgg\Http\ResponseBuilder;
6
use Elgg\HttpException;
7
use Elgg\Loggable;
8
use Elgg\Request;
9
use Psr\Log\LogLevel;
10
11
/**
12
 * Execute upgrades
13
 */
14
class UpgradeController {
15
16
	use Loggable;
17
18
	/**
19
	 * Execute system upgrades
20
	 *
21
	 * @param Request $request Request
22
	 *
23
	 * @return ResponseBuilder
24
	 * @throws HttpException
25
	 */
26
	public function __invoke(Request $request) {
27
28
		$response = null;
29
30
		$forward_url = $request->getParam('forward', 'admin');
31
		$forward_url = elgg_normalize_site_url($forward_url);
32
33
		$upgrade = _elgg_services()->upgrades->run();
34
35
		$upgrade->done(
36
			function () use (&$response, $forward_url) {
37
				$response = elgg_ok_response('', elgg_echo('upgrade:core'), $forward_url);
1 ignored issue
show
It seems like $forward_url can also be of type false; however, parameter $forward_url of elgg_ok_response() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

37
				$response = elgg_ok_response('', elgg_echo('upgrade:core'), /** @scrutinizer ignore-type */ $forward_url);
Loading history...
38
			},
39
			function ($error) use ($forward_url) {
40
				$this->log(LogLevel::ERROR, $error);
41
42
				$exception = new HttpException($error, ELGG_HTTP_INTERNAL_SERVER_ERROR);
43
				$exception->setRedirectUrl($forward_url);
44
45
				throw $exception;
46
			}
47
		);
48
49
		return $response;
50
	}
51
}
52