| Conditions | 11 |
| Paths | 48 |
| Total Lines | 62 |
| Code Lines | 42 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | <?php |
||
| 27 | public function execute() { |
||
| 28 | global $wgLang; |
||
| 29 | $r = $this->parent->request; |
||
| 30 | $userLang = $r->getVal( 'uselang' ); |
||
| 31 | $contLang = $r->getVal( 'ContLang' ); |
||
| 32 | |||
| 33 | $languages = Language::fetchLanguageNames(); |
||
| 34 | $lifetime = intval( ini_get( 'session.gc_maxlifetime' ) ); |
||
| 35 | if ( !$lifetime ) { |
||
| 36 | $lifetime = 1440; // PHP default |
||
| 37 | } |
||
| 38 | |||
| 39 | if ( $r->wasPosted() ) { |
||
| 40 | # Do session test |
||
| 41 | if ( $this->parent->getSession( 'test' ) === null ) { |
||
| 42 | $requestTime = $r->getVal( 'LanguageRequestTime' ); |
||
| 43 | if ( !$requestTime ) { |
||
|
|
|||
| 44 | // The most likely explanation is that the user was knocked back |
||
| 45 | // from another page on POST due to session expiry |
||
| 46 | $msg = 'config-session-expired'; |
||
| 47 | } elseif ( time() - $requestTime > $lifetime ) { |
||
| 48 | $msg = 'config-session-expired'; |
||
| 49 | } else { |
||
| 50 | $msg = 'config-no-session'; |
||
| 51 | } |
||
| 52 | $this->parent->showError( $msg, $wgLang->formatTimePeriod( $lifetime ) ); |
||
| 53 | } else { |
||
| 54 | if ( isset( $languages[$userLang] ) ) { |
||
| 55 | $this->setVar( '_UserLang', $userLang ); |
||
| 56 | } |
||
| 57 | if ( isset( $languages[$contLang] ) ) { |
||
| 58 | $this->setVar( 'wgLanguageCode', $contLang ); |
||
| 59 | } |
||
| 60 | |||
| 61 | return 'continue'; |
||
| 62 | } |
||
| 63 | } elseif ( $this->parent->showSessionWarning ) { |
||
| 64 | # The user was knocked back from another page to the start |
||
| 65 | # This probably indicates a session expiry |
||
| 66 | $this->parent->showError( 'config-session-expired', |
||
| 67 | $wgLang->formatTimePeriod( $lifetime ) ); |
||
| 68 | } |
||
| 69 | |||
| 70 | $this->parent->setSession( 'test', true ); |
||
| 71 | |||
| 72 | if ( !isset( $languages[$userLang] ) ) { |
||
| 73 | $userLang = $this->getVar( '_UserLang', 'en' ); |
||
| 74 | } |
||
| 75 | if ( !isset( $languages[$contLang] ) ) { |
||
| 76 | $contLang = $this->getVar( 'wgLanguageCode', 'en' ); |
||
| 77 | } |
||
| 78 | $this->startForm(); |
||
| 79 | $s = Html::hidden( 'LanguageRequestTime', time() ) . |
||
| 80 | $this->getLanguageSelector( 'uselang', 'config-your-language', $userLang, |
||
| 81 | $this->parent->getHelpBox( 'config-your-language-help' ) ) . |
||
| 82 | $this->getLanguageSelector( 'ContLang', 'config-wiki-language', $contLang, |
||
| 83 | $this->parent->getHelpBox( 'config-wiki-language-help' ) ); |
||
| 84 | $this->addHTML( $s ); |
||
| 85 | $this->endForm( 'continue', false ); |
||
| 86 | |||
| 87 | return null; |
||
| 88 | } |
||
| 89 | |||
| 122 |
In PHP, under loose comparison (like
==, or!=, orswitchconditions), values of different types might be equal.For
stringvalues, the empty string''is a special case, in particular the following results might be unexpected: