Completed
Branch master (939199)
by
unknown
39:35
created

includes/actions/EditAction.php (1 issue)

Labels
Severity

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * action=edit handler
4
 *
5
 * Copyright © 2012 Timo Tijhof
6
 *
7
 * This program is free software; you can redistribute it and/or modify
8
 * it under the terms of the GNU General Public License as published by
9
 * the Free Software Foundation; either version 2 of the License, or
10
 * (at your option) any later version.
11
 *
12
 * This program is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 * GNU General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU General Public License
18
 * along with this program; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
20
 *
21
 * @file
22
 * @ingroup Actions
23
 * @author Timo Tijhof
24
 */
25
26
/**
27
 * Page edition handler
28
 *
29
 * This is a wrapper that will call the EditPage class or a custom editor from an extension.
30
 *
31
 * @ingroup Actions
32
 */
33
class EditAction extends FormlessAction {
34
35
	public function getName() {
36
		return 'edit';
37
	}
38
39
	public function onView() {
40
		return null;
41
	}
42
43
	public function show() {
44
		$this->useTransactionalTimeLimit();
45
46
		$out = $this->getOutput();
47
		$out->setRobotPolicy( 'noindex,nofollow' );
48
		if ( $this->getContext()->getConfig()->get( 'UseMediaWikiUIEverywhere' ) ) {
49
			$out->addModuleStyles( [
50
				'mediawiki.ui.input',
51
				'mediawiki.ui.checkbox',
52
			] );
53
		}
54
		$page = $this->page;
55
		$user = $this->getUser();
56
57
		if ( Hooks::run( 'CustomEditor', [ $page, $user ] ) ) {
58
			$editor = new EditPage( $page );
0 ignored issues
show
It seems like $page defined by $this->page on line 54 can also be of type object<Page> or object<WikiPage>; however, EditPage::__construct() does only seem to accept object<Article>, maybe add an additional type check?

If a method or function can return multiple different values and unless you are sure that you only can receive a single value in this context, we recommend to add an additional type check:

/**
 * @return array|string
 */
function returnsDifferentValues($x) {
    if ($x) {
        return 'foo';
    }

    return array();
}

$x = returnsDifferentValues($y);
if (is_array($x)) {
    // $x is an array.
}

If this a common case that PHP Analyzer should handle natively, please let us know by opening an issue.

Loading history...
59
			$editor->edit();
60
		}
61
	}
62
63
	public function doesWrites() {
64
		return true;
65
	}
66
}
67