build: Updating mediawiki/mediawiki-codesniffer to 22.0.0
authorUmherirrender <umherirrender_de.wp@web.de>
Fri, 7 Sep 2018 17:01:32 +0000 (19:01 +0200)
committerKrinkle <krinklemail@gmail.com>
Sun, 16 Sep 2018 15:51:11 +0000 (15:51 +0000)
Added spaces around .
Removed empty return statement which are not required
Removed return after phpunit markTestIncomplete,
which is throwing to exit the test, no need for a return

Change-Id: I2c80b965ee52ba09949e70ea9e7adfc58a1d89ce

41 files changed:
.phpcs.xml
composer.json
includes/AutoLoader.php
includes/EditPage.php
includes/Storage/DerivedPageDataUpdater.php
includes/Storage/RevisionStore.php
includes/Title.php
includes/WebRequest.php
includes/actions/RollbackAction.php
includes/api/ApiQueryAllDeletedRevisions.php
includes/gallery/PackedImageGallery.php
includes/jobqueue/JobQueueDB.php
includes/libs/virtualrest/ParsoidVirtualRESTService.php
includes/media/JpegHandler.php
includes/page/Article.php
includes/page/ImageHistoryList.php
includes/parser/Preprocessor_Hash.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderSkinModule.php
includes/specialpage/LoginSignupSpecialPage.php
includes/specials/forms/PreferencesFormOOUI.php
includes/user/User.php
languages/classes/LanguageKk.php
languages/data/CrhExceptions.php
maintenance/Maintenance.php
maintenance/benchmarks/benchmarkTidy.php
maintenance/cleanupInvalidDbKeys.php
maintenance/createCommonPasswordCdb.php
maintenance/dumpIterator.php
maintenance/includes/DeleteLocalPasswords.php
tests/integration/includes/http/MWHttpRequestTestCase.php
tests/parser/ParserTestRunner.php
tests/parser/editTests.php
tests/phpunit/includes/Storage/RevisionRecordTests.php
tests/phpunit/includes/Storage/RevisionStoreDbTestBase.php
tests/phpunit/includes/libs/composer/ComposerLockTest.php
tests/phpunit/includes/linker/LinkRendererTest.php
tests/phpunit/includes/media/FormatMetadataTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderWikiModuleTest.php
tests/phpunit/includes/sparql/SparqlClientTest.php
tests/phpunit/includes/watcheditem/WatchedItemStoreUnitTest.php

index bd0ab82..2bce5b2 100644 (file)
@@ -2,14 +2,12 @@
 <ruleset name="MediaWiki">
        <rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
                <exclude name="Generic.ControlStructures.InlineControlStructure" />
-               <exclude name="MediaWiki.Commenting.FunctionAnnotations.UnrecognizedAnnotation" />
                <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected" />
                <exclude name="MediaWiki.Commenting.FunctionComment.MissingDocumentationPublic" />
                <exclude name="MediaWiki.Commenting.FunctionComment.MissingParamTag" />
                <exclude name="MediaWiki.Commenting.FunctionComment.MissingReturn" />
                <exclude name="MediaWiki.Commenting.FunctionComment.ExtraParamComment" />
                <exclude name="MediaWiki.Commenting.FunctionComment.WrongStyle" />
-               <exclude name="MediaWiki.Commenting.PhpunitAnnotations.NotClassTrait" />
                <exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentStart" />
                <exclude name="MediaWiki.Commenting.IllegalSingleLineComment.IllegalSingleLineCommentEnd" />
                <exclude name="MediaWiki.ControlStructures.AssignmentInControlStructures.AssignmentInControlStructures" />
index bd3a696..e99fe81 100644 (file)
@@ -62,7 +62,7 @@
                "jakub-onderka/php-parallel-lint": "0.9.2",
                "jetbrains/phpstorm-stubs": "dev-master#38ff1a581b297f7901e961b8c923862ea80c3b96",
                "justinrainbow/json-schema": "~5.2",
-               "mediawiki/mediawiki-codesniffer": "21.0.0",
+               "mediawiki/mediawiki-codesniffer": "22.0.0",
                "monolog/monolog": "~1.22.1",
                "nikic/php-parser": "3.1.3",
                "seld/jsonlint": "1.7.1",
index c9932d6..5482f6a 100644 (file)
@@ -132,14 +132,14 @@ class AutoLoader {
                        'MediaWiki\\Auth\\' => __DIR__ . '/auth/',
                        'MediaWiki\\Edit\\' => __DIR__ . '/edit/',
                        'MediaWiki\\EditPage\\' => __DIR__ . '/editpage/',
-                       'MediaWiki\\Linker\\' => __DIR__ .'/linker/',
-                       'MediaWiki\\Preferences\\' => __DIR__ .'/preferences/',
-                       'MediaWiki\\Services\\' => __DIR__ .'/services/',
-                       'MediaWiki\\Session\\' => __DIR__ .'/session/',
-                       'MediaWiki\\Shell\\' => __DIR__ .'/shell/',
-                       'MediaWiki\\Sparql\\' => __DIR__ .'/sparql/',
-                       'MediaWiki\\Storage\\' => __DIR__ .'/Storage/',
-                       'MediaWiki\\Tidy\\' => __DIR__ .'/tidy/',
+                       'MediaWiki\\Linker\\' => __DIR__ . '/linker/',
+                       'MediaWiki\\Preferences\\' => __DIR__ . '/preferences/',
+                       'MediaWiki\\Services\\' => __DIR__ . '/services/',
+                       'MediaWiki\\Session\\' => __DIR__ . '/session/',
+                       'MediaWiki\\Shell\\' => __DIR__ . '/shell/',
+                       'MediaWiki\\Sparql\\' => __DIR__ . '/sparql/',
+                       'MediaWiki\\Storage\\' => __DIR__ . '/Storage/',
+                       'MediaWiki\\Tidy\\' => __DIR__ . '/tidy/',
                ];
        }
 }
index 64b2f01..f1f0572 100644 (file)
@@ -1689,7 +1689,7 @@ class EditPage {
                                // is if an extension hook aborted from inside ArticleSave.
                                // Render the status object into $this->hookError
                                // FIXME this sucks, we should just use the Status object throughout
-                               $this->hookError = '<div class="error">' ."\n" . $status->getWikiText() .
+                               $this->hookError = '<div class="error">' . "\n" . $status->getWikiText() .
                                        '</div>';
                                return true;
                }
index 99c31b2..b44e0e9 100644 (file)
@@ -1077,7 +1077,7 @@ class DerivedPageDataUpdater implements IDBAccessObject {
                        } else {
                                throw new LogicException(
                                        'Trying to re-use DerivedPageDataUpdater with revision '
-                                       .$revision->getId()
+                                       . $revision->getId()
                                        . ', but it\'s already bound to revision '
                                        . $this->revision->getId()
                                );
@@ -1138,7 +1138,7 @@ class DerivedPageDataUpdater implements IDBAccessObject {
                        if ( !$this->user->equals( $user ) ) {
                                throw new LogicException(
                                        'The Revision provided has a mismatching actor: expected '
-                                       .$this->user->getName()
+                                       . $this->user->getName()
                                        . ', got '
                                        . $user->getName()
                                );
index 8e66906..879f322 100644 (file)
@@ -525,11 +525,11 @@ class RevisionStore
                        $slot = $rev->getSlot( $role, RevisionRecord::RAW );
                        Assert::postcondition(
                                $slot->getContent() !== null,
-                               $role .  ' slot must have content'
+                               $role . ' slot must have content'
                        );
                        Assert::postcondition(
                                $slot->hasRevision(),
-                               $role .  ' slot must have a revision associated'
+                               $role . ' slot must have a revision associated'
                        );
                }
 
index ca62e0e..bbc1d63 100644 (file)
@@ -1665,7 +1665,7 @@ class Title implements LinkTarget {
                        if ( $nsText === false ) {
                                // See T165149. Awkward, but better than erroneously linking to the main namespace.
                                $nsText = MediaWikiServices::getInstance()->getContentLanguage()->
-                                       getNsText( NS_SPECIAL ) .  ":Badtitle/NS{$this->mNamespace}";
+                                       getNsText( NS_SPECIAL ) . ":Badtitle/NS{$this->mNamespace}";
                        }
 
                        $p .= $nsText . ':';
index 327dd54..ed10615 100644 (file)
@@ -856,7 +856,7 @@ class WebRequest {
         * @return string
         */
        public function getFullRequestURL() {
-               return wfGetServerUrl( PROTO_CURRENT ) .  $this->getRequestURL();
+               return wfGetServerUrl( PROTO_CURRENT ) . $this->getRequestURL();
        }
 
        /**
index 9d336e4..dc7b00e 100644 (file)
@@ -151,7 +151,6 @@ class RollbackAction extends FormlessAction {
                        );
                        $de->showDiff( '', '' );
                }
-               return;
        }
 
        protected function getDescription() {
index 830df59..bae6885 100644 (file)
@@ -76,7 +76,7 @@ class ApiQueryAllDeletedRevisions extends ApiQueryRevisionsBase {
                                if ( !is_null( $params[$param] ) ) {
                                        $p = $this->getModulePrefix();
                                        $this->dieWithError(
-                                               [ 'apierror-invalidparammix-cannotusewith', $p.$param, "{$p}user" ],
+                                               [ 'apierror-invalidparammix-cannotusewith', $p . $param, "{$p}user" ],
                                                'invalidparammix'
                                        );
                                }
@@ -86,7 +86,7 @@ class ApiQueryAllDeletedRevisions extends ApiQueryRevisionsBase {
                                if ( !is_null( $params[$param] ) ) {
                                        $p = $this->getModulePrefix();
                                        $this->dieWithError(
-                                               [ 'apierror-invalidparammix-mustusewith', $p.$param, "{$p}user" ],
+                                               [ 'apierror-invalidparammix-mustusewith', $p . $param, "{$p}user" ],
                                                'invalidparammix'
                                        );
                                }
index d1c9455..7aa8c78 100644 (file)
@@ -107,6 +107,5 @@ class PackedImageGallery extends TraditionalImageGallery {
         * @param int $num
         */
        public function setPerRow( $num ) {
-               return;
        }
 }
index 689326e..0b85fbe 100644 (file)
@@ -264,8 +264,6 @@ class JobQueueDB extends JobQueue {
                if ( $flags & self::QOS_ATOMIC ) {
                        $dbw->endAtomic( $method );
                }
-
-               return;
        }
 
        /**
index 73ecc9d..3f8a11b 100644 (file)
@@ -181,7 +181,7 @@ class ParsoidVirtualRESTService extends VirtualRESTService {
                                unset( $req['query']['oldid'] );
                        }
                } elseif ( $reqType === 'transform' ) {
-                       $req['url'] .= 'transform/'. $parts[3] . '/to/' . $parts[5];
+                       $req['url'] .= 'transform/' . $parts[3] . '/to/' . $parts[5];
                        // the title
                        if ( isset( $parts[6] ) ) {
                                $req['url'] .= '/' . $parts[6];
index 287c198..91bed4a 100644 (file)
@@ -259,13 +259,13 @@ class JpegHandler extends ExifBitmapHandler {
 
                // Make a regex out of the source data to match it to an array of color
                // spaces in a case-insensitive way
-               $colorSpaceRegex = '/'.preg_quote( $data[0], '/' ).'/i';
+               $colorSpaceRegex = '/' . preg_quote( $data[0], '/' ) . '/i';
                if ( empty( preg_grep( $colorSpaceRegex, $colorSpaces ) ) ) {
                        // We can't establish that this file matches the color space, don't process it
                        return false;
                }
 
-               $profileRegex = '/'.preg_quote( $data[1], '/' ).'/i';
+               $profileRegex = '/' . preg_quote( $data[1], '/' ) . '/i';
                if ( empty( preg_grep( $profileRegex, $oldProfileStrings ) ) ) {
                        // We can't establish that this file has the expected ICC profile, don't process it
                        return false;
index 7404f83..128cefe 100644 (file)
@@ -355,7 +355,7 @@ class Article implements Page {
                                if ( $this->mRevision !== null ) {
                                        // Revision title doesn't match the page title given?
                                        if ( $this->mPage->getId() != $this->mRevision->getPage() ) {
-                                               $function = get_class( $this->mPage ). '::newFromID';
+                                               $function = get_class( $this->mPage ) . '::newFromID';
                                                $this->mPage = $function( $this->mRevision->getPage() );
                                        }
                                }
@@ -817,6 +817,7 @@ class Article implements Page {
                // Note that the ArticleViewHeader hook is allowed to set $outputDone to a
                // ParserOutput instance.
                $pOutput = ( $outputDone instanceof ParserOutput )
+                       // phpcs:ignore MediaWiki.Usage.NestedInlineTernary.UnparenthesizedTernary -- FIXME T203805
                        ? $outputDone // object fetched by hook
                        : $this->mParserOutput ?: null; // ParserOutput or null, avoid false
 
index 1f87d93..0a07c68 100644 (file)
@@ -266,7 +266,7 @@ class ImageHistoryList extends ContextSource {
                } else {
                        $row .=
                                '<td dir="' . MediaWikiServices::getInstance()->getContentLanguage()->getDir() .
-                               '">' .  Linker::formatComment( $description, $this->title ) . '</td>';
+                               '">' . Linker::formatComment( $description, $this->title ) . '</td>';
                }
 
                $rowClass = null;
index 0326499..6d6dd89 100644 (file)
@@ -1088,7 +1088,7 @@ class PPFrame_Hash implements PPFrame {
                        } elseif ( is_array( $contextNode ) ) {
                                // Node descriptor array
                                if ( count( $contextNode ) !== 2 ) {
-                                       throw new MWException( __METHOD__.
+                                       throw new MWException( __METHOD__ .
                                                ': found an array where a node descriptor should be' );
                                }
                                list( $contextName, $contextChildren ) = $contextNode;
@@ -1786,7 +1786,7 @@ class PPNode_Hash_Tree implements PPNode {
                                $class = self::class;
                        }
                } else {
-                       throw new MWException( __METHOD__.': invalid node descriptor' );
+                       throw new MWException( __METHOD__ . ': invalid node descriptor' );
                }
                return new $class( $store, $index );
        }
@@ -2206,7 +2206,7 @@ class PPNode_Hash_Attr implements PPNode {
        public function __construct( array $store, $index ) {
                $descriptor = $store[$index];
                if ( $descriptor[PPNode_Hash_Tree::NAME][0] !== '@' ) {
-                       throw new MWException( __METHOD__.': invalid name in attribute descriptor' );
+                       throw new MWException( __METHOD__ . ': invalid name in attribute descriptor' );
                }
                $this->name = substr( $descriptor[PPNode_Hash_Tree::NAME], 1 );
                $this->value = $descriptor[PPNode_Hash_Tree::CHILDREN][0];
index 9764549..de26a92 100644 (file)
@@ -1223,7 +1223,7 @@ MESSAGE;
                        if ( self::inDebugMode() ) {
                                $scripts = new XmlJsCode( "function ( $, jQuery, require, module ) {\n{$scripts->value}\n}" );
                        } else {
-                               $scripts = new XmlJsCode( 'function($,jQuery,require,module){'. $scripts->value . '}' );
+                               $scripts = new XmlJsCode( 'function($,jQuery,require,module){' . $scripts->value . '}' );
                        }
                } elseif ( !is_string( $scripts ) && !is_array( $scripts ) ) {
                        throw new MWException( 'Invalid scripts error. Array of URLs or string of code expected.' );
index 2455596..e0fbeee 100644 (file)
@@ -117,7 +117,7 @@ class ResourceLoaderSkinModule extends ResourceLoaderFileModule {
                }
 
                // Because PHP can't have floats as array keys
-               uksort( $logosPerDppx, function ( $a , $b ) {
+               uksort( $logosPerDppx, function ( $a, $b ) {
                        $a = floatval( $a );
                        $b = floatval( $b );
                        // Sort from smallest to largest (e.g. 1x, 1.5x, 2x)
index e94f3db..bf6c9bb 100644 (file)
@@ -1127,7 +1127,7 @@ abstract class LoginSignupSpecialPage extends AuthManagerSpecialPage {
                        if ( !$signupendMsg->isDisabled() ) {
                                $usingHTTPS = $this->getRequest()->getProtocol() === 'https';
                                $signupendText = ( $usingHTTPS && !$signupendHttpsMsg->isBlank() )
-                                       ? $signupendHttpsMsg ->parse() : $signupendMsg->parse();
+                                       ? $signupendHttpsMsg->parse() : $signupendMsg->parse();
                                $fieldDefinitions['signupend'] = [
                                        'type' => 'info',
                                        'raw' => true,
index a5171e3..bf4d9af 100644 (file)
@@ -172,7 +172,7 @@ class PreferencesFormOOUI extends OOUIHTMLForm {
                                        'div',
                                        [
                                                'class' =>
-                                                       'oo-ui-widget oo-ui-widget-enabled oo-ui-optionWidget '.
+                                                       'oo-ui-widget oo-ui-widget-enabled oo-ui-optionWidget ' .
                                                        'oo-ui-tabOptionWidget oo-ui-labelElement' .
                                                        ( $i === 0 ? ' oo-ui-optionWidget-selected' : '' )
                                        ],
@@ -193,7 +193,7 @@ class PreferencesFormOOUI extends OOUIHTMLForm {
                        [ 'class' => 'oo-ui-layout oo-ui-panelLayout oo-ui-indexLayout-tabPanel' ],
                        Html::rawElement(
                                'div',
-                               [ 'class' => 'oo-ui-widget oo-ui-widget-enabled oo-ui-selectWidget '.
+                               [ 'class' => 'oo-ui-widget oo-ui-widget-enabled oo-ui-selectWidget ' .
                                        'oo-ui-selectWidget-depressed oo-ui-tabSelectWidget' ],
                                implode( $fakeTabs )
                        )
index 7bebe80..d6d4db2 100644 (file)
@@ -1010,10 +1010,10 @@ class User implements IDBAccessObject, UserIdentity {
                // Should these be merged into the title char list?
                $unicodeBlacklist = '/[' .
                        '\x{0080}-\x{009f}' . # iso-8859-1 control chars
-                       '\x{00a0}' .          # non-breaking space
+                       '\x{00a0}' . # non-breaking space
                        '\x{2000}-\x{200f}' . # various whitespace
                        '\x{2028}-\x{202f}' . # breaks and control chars
-                       '\x{3000}' .          # ideographic space
+                       '\x{3000}' . # ideographic space
                        '\x{e000}-\x{f8ff}' . # private use
                        ']/u';
                if ( preg_match( $unicodeBlacklist, $name ) ) {
index dc8a9f8..4184508 100644 (file)
@@ -329,21 +329,18 @@ class KkConverter extends LanguageConverter {
                                        $text = preg_replace( $pat, $rep, $text );
                                }
                                return $text;
-                               break;
                        case 'kk-latn':
                        case 'kk-tr':
                                foreach ( $this->mCyrl2Latn as $pat => $rep ) {
                                        $text = preg_replace( $pat, $rep, $text );
                                }
                                return $text;
-                               break;
                        case 'kk-cyrl':
                        case 'kk-kz':
                                foreach ( $this->mLatn2Cyrl as $pat => $rep ) {
                                        $text = preg_replace( $pat, $rep, $text );
                                }
                                return $text;
-                               break;
                        default:
                                return $text;
                }
index fcba6dc..92c1f86 100644 (file)
@@ -104,9 +104,9 @@ class CrhExceptions {
 
                # load C2L and L2C bidirectional affix mappings
                $this->addMappings( $this->prefixMapping,
-                       $this->Cyrl2LatnPatterns, $this->Latn2CyrlPatterns, false, '/'.self::WB, '/u' );
+                       $this->Cyrl2LatnPatterns, $this->Latn2CyrlPatterns, false, '/' . self::WB, '/u' );
                $this->addMappings( $this->suffixMapping,
-                       $this->Cyrl2LatnPatterns, $this->Latn2CyrlPatterns, false, '/', self::WB.'/u' );
+                       $this->Cyrl2LatnPatterns, $this->Latn2CyrlPatterns, false, '/', self::WB . '/u' );
 
                # tack on one-way mappings to the ends of the prefix and suffix patterns
                $this->Cyrl2LatnPatterns += $this->Cyrl2LatnRegexes;
@@ -388,8 +388,8 @@ class CrhExceptions {
                'му([иэИЭ])' => 'mü$1',
 
                # originally L2C, here swapped
-               'роль$1' => 'rol([^ü]|'.self::WB.')',
-               'усть$1' => 'üst([^ü]|'.self::WB.')',
+               'роль$1' => 'rol([^ü]|' . self::WB . ')',
+               'усть$1' => 'üst([^ü]|' . self::WB . ')',
 
                # more prefixes
                'ком-кок' => 'köm-kök',
@@ -410,80 +410,80 @@ class CrhExceptions {
                        // TODO: refactor upper/lower/first capital whole words without
                        // regexes into simpler list
 
-                       '/'.self::WB.'КъЮШ'.self::WB.'/u' => 'QYŞ',
-                       '/'.self::WB.'ЮШ'.self::WB.'/u' => 'YŞ',
-
-                       '/'.self::WB.'кок'.self::WB.'/u' => 'kök',
-                       '/'.self::WB.'Кок'.self::WB.'/u' => 'Kök',
-                       '/'.self::WB.'КОК'.self::WB.'/u' => 'KÖK',
-                       '/'.self::WB.'ком-кок'.self::WB.'/u' => 'köm-kök',
-                       '/'.self::WB.'Ком-кок'.self::WB.'/u' => 'Köm-kök',
-                       '/'.self::WB.'КОМ-КОК'.self::WB.'/u' => 'KÖM-KÖK',
-
-                       '/'.self::WB.'коп'.self::WB.'/u' => 'köp',
-                       '/'.self::WB.'Коп'.self::WB.'/u' => 'Köp',
-                       '/'.self::WB.'КОП'.self::WB.'/u' => 'KÖP',
-
-                       '/'.self::WB.'курк'.self::WB.'/u' => 'kürk',
-                       '/'.self::WB.'Курк'.self::WB.'/u' => 'Kürk',
-                       '/'.self::WB.'КУРК'.self::WB.'/u' => 'KÜRK',
-
-                       '/'.self::WB.'ог'.self::WB.'/u' => 'ög',
-                       '/'.self::WB.'Ог'.self::WB.'/u' => 'Ög',
-                       '/'.self::WB.'ОГ'.self::WB.'/u' => 'ÖG',
-
-                       '/'.self::WB.'юрип'.self::WB.'/u' => 'yürip',
-                       '/'.self::WB.'Юрип'.self::WB.'/u' => 'Yürip',
-                       '/'.self::WB.'ЮРИП'.self::WB.'/u' => 'YÜRİP',
-
-                       '/'.self::WB.'юз'.self::WB.'/u' => 'yüz',
-                       '/'.self::WB.'Юз'.self::WB.'/u' => 'Yüz',
-                       '/'.self::WB.'ЮЗ'.self::WB.'/u' => 'YÜZ',
-
-                       '/'.self::WB.'юк'.self::WB.'/u' => 'yük',
-                       '/'.self::WB.'Юк'.self::WB.'/u' => 'Yük',
-                       '/'.self::WB.'ЮК'.self::WB.'/u' => 'YÜK',
-
-                       '/'.self::WB.'буюп'.self::WB.'/u' => 'büyüp',
-                       '/'.self::WB.'Буюп'.self::WB.'/u' => 'Büyüp',
-                       '/'.self::WB.'БУЮП'.self::WB.'/u' => 'BÜYÜP',
-
-                       '/'.self::WB.'буюк'.self::WB.'/u' => 'büyük',
-                       '/'.self::WB.'Буюк'.self::WB.'/u' => 'Büyük',
-                       '/'.self::WB.'БУЮК'.self::WB.'/u' => 'BÜYÜK',
-
-                       '/'.self::WB.'джонк'.self::WB.'/u' => 'cönk',
-                       '/'.self::WB.'Джонк'.self::WB.'/u' => 'Cönk',
-                       '/'.self::WB.'ДЖОНК'.self::WB.'/u' => 'CÖNK',
-                       '/'.self::WB.'джонкю'.self::WB.'/u' => 'cönkü',
-                       '/'.self::WB.'Джонкю'.self::WB.'/u' => 'Cönkü',
-                       '/'.self::WB.'ДЖОНКЮ'.self::WB.'/u' => 'CÖNKÜ',
-
-                       '/'.self::WB.'куркчи/u' => 'kürkçi',
-                       '/'.self::WB.'Куркчи/u' => 'Kürkçi',
-                       '/'.self::WB.'КУРКЧИ/u' => 'KÜRKÇI',
-
-                       '/'.self::WB.'устке'.self::WB.'/u' => 'üstke',
-                       '/'.self::WB.'Устке'.self::WB.'/u' => 'Üstke',
-                       '/'.self::WB.'УСТКЕ'.self::WB.'/u' => 'ÜSTKE',
-                       '/'.self::WB.'устте'.self::WB.'/u' => 'üstte',
-                       '/'.self::WB.'Устте'.self::WB.'/u' => 'Üstte',
-                       '/'.self::WB.'УСТТЕ'.self::WB.'/u' => 'ÜSTTE',
-                       '/'.self::WB.'усттен'.self::WB.'/u' => 'üstten',
-                       '/'.self::WB.'Усттен'.self::WB.'/u' => 'Üstten',
-                       '/'.self::WB.'УСТТЕН'.self::WB.'/u' => 'ÜSTTEN',
+                       '/' . self::WB . 'КъЮШ' . self::WB . '/u' => 'QYŞ',
+                       '/' . self::WB . 'ЮШ' . self::WB . '/u' => 'YŞ',
+
+                       '/' . self::WB . 'кок' . self::WB . '/u' => 'kök',
+                       '/' . self::WB . 'Кок' . self::WB . '/u' => 'Kök',
+                       '/' . self::WB . 'КОК' . self::WB . '/u' => 'KÖK',
+                       '/' . self::WB . 'ком-кок' . self::WB . '/u' => 'köm-kök',
+                       '/' . self::WB . 'Ком-кок' . self::WB . '/u' => 'Köm-kök',
+                       '/' . self::WB . 'КОМ-КОК' . self::WB . '/u' => 'KÖM-KÖK',
+
+                       '/' . self::WB . 'коп' . self::WB . '/u' => 'köp',
+                       '/' . self::WB . 'Коп' . self::WB . '/u' => 'Köp',
+                       '/' . self::WB . 'КОП' . self::WB . '/u' => 'KÖP',
+
+                       '/' . self::WB . 'курк' . self::WB . '/u' => 'kürk',
+                       '/' . self::WB . 'Курк' . self::WB . '/u' => 'Kürk',
+                       '/' . self::WB . 'КУРК' . self::WB . '/u' => 'KÜRK',
+
+                       '/' . self::WB . 'ог' . self::WB . '/u' => 'ög',
+                       '/' . self::WB . 'Ог' . self::WB . '/u' => 'Ög',
+                       '/' . self::WB . 'ОГ' . self::WB . '/u' => 'ÖG',
+
+                       '/' . self::WB . 'юрип' . self::WB . '/u' => 'yürip',
+                       '/' . self::WB . 'Юрип' . self::WB . '/u' => 'Yürip',
+                       '/' . self::WB . 'ЮРИП' . self::WB . '/u' => 'YÜRİP',
+
+                       '/' . self::WB . 'юз' . self::WB . '/u' => 'yüz',
+                       '/' . self::WB . 'Юз' . self::WB . '/u' => 'Yüz',
+                       '/' . self::WB . 'ЮЗ' . self::WB . '/u' => 'YÜZ',
+
+                       '/' . self::WB . 'юк' . self::WB . '/u' => 'yük',
+                       '/' . self::WB . 'Юк' . self::WB . '/u' => 'Yük',
+                       '/' . self::WB . 'ЮК' . self::WB . '/u' => 'YÜK',
+
+                       '/' . self::WB . 'буюп' . self::WB . '/u' => 'büyüp',
+                       '/' . self::WB . 'Буюп' . self::WB . '/u' => 'Büyüp',
+                       '/' . self::WB . 'БУЮП' . self::WB . '/u' => 'BÜYÜP',
+
+                       '/' . self::WB . 'буюк' . self::WB . '/u' => 'büyük',
+                       '/' . self::WB . 'Буюк' . self::WB . '/u' => 'Büyük',
+                       '/' . self::WB . 'БУЮК' . self::WB . '/u' => 'BÜYÜK',
+
+                       '/' . self::WB . 'джонк' . self::WB . '/u' => 'cönk',
+                       '/' . self::WB . 'Джонк' . self::WB . '/u' => 'Cönk',
+                       '/' . self::WB . 'ДЖОНК' . self::WB . '/u' => 'CÖNK',
+                       '/' . self::WB . 'джонкю' . self::WB . '/u' => 'cönkü',
+                       '/' . self::WB . 'Джонкю' . self::WB . '/u' => 'Cönkü',
+                       '/' . self::WB . 'ДЖОНКЮ' . self::WB . '/u' => 'CÖNKÜ',
+
+                       '/' . self::WB . 'куркчи/u' => 'kürkçi',
+                       '/' . self::WB . 'Куркчи/u' => 'Kürkçi',
+                       '/' . self::WB . 'КУРКЧИ/u' => 'KÜRKÇI',
+
+                       '/' . self::WB . 'устке' . self::WB . '/u' => 'üstke',
+                       '/' . self::WB . 'Устке' . self::WB . '/u' => 'Üstke',
+                       '/' . self::WB . 'УСТКЕ' . self::WB . '/u' => 'ÜSTKE',
+                       '/' . self::WB . 'устте' . self::WB . '/u' => 'üstte',
+                       '/' . self::WB . 'Устте' . self::WB . '/u' => 'Üstte',
+                       '/' . self::WB . 'УСТТЕ' . self::WB . '/u' => 'ÜSTTE',
+                       '/' . self::WB . 'усттен' . self::WB . '/u' => 'üstten',
+                       '/' . self::WB . 'Усттен' . self::WB . '/u' => 'Üstten',
+                       '/' . self::WB . 'УСТТЕН' . self::WB . '/u' => 'ÜSTTEN',
 
                        # отдельно стоящие Ё и Я
                        # stand-alone Ё and Я
-                       '/'.self::WB.'Я'.self::WB.'/u' => 'Ya',
-                       '/'.self::WB.'Ё'.self::WB.'/u' => 'Yo',
+                       '/' . self::WB . 'Я' . self::WB . '/u' => 'Ya',
+                       '/' . self::WB . 'Ё' . self::WB . '/u' => 'Yo',
 
                        ############################
                        # относятся к началу слова #
                        # word prefixes            #
                        ############################
-                       '/'.self::WB.'КъЮШн/u' => 'QYŞn',
-                       '/'.self::WB.'ЮШн/u' => 'YŞn',
+                       '/' . self::WB . 'КъЮШн/u' => 'QYŞn',
+                       '/' . self::WB . 'ЮШн/u' => 'YŞn',
 
                        # need to convert digraphs (гъ, къ, нъ, дж) now to match patterns
                        '/гъ/u' => 'ğ',
@@ -496,69 +496,73 @@ class CrhExceptions {
                        '/Д[жЖ]/u' => 'C',
 
                        # о => ö
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])о(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u'
-                               => '$1ö$2$3$4',
-                       '/'.self::WB.'о(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u' => 'ö$1$2$3',
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])О(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u'
-                               => '$1Ö$2$3$4',
-                       '/'.self::WB.'О(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u' => 'Ö$1$2$3',
-
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])о(['.Crh::C_CONS.'])([еиэюьü])/u' => '$1ö$2$3',
-                       '/'.self::WB.'о(['.Crh::C_CONS.'])([еиэюьü])/u' => 'ö$1$2',
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])О(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u' => '$1Ö$2$3',
-                       '/'.self::WB.'О(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u' => 'Ö$1$2',
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])о([' . Crh::C_CONS . '])([' . Crh::C_CONS .
+                               '])([еиэюьü])/u' => '$1ö$2$3$4',
+                       '/' . self::WB . 'о([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьü])/u' => 'ö$1$2$3',
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])О([' . Crh::C_CONS . '])([' . Crh::C_CONS .
+                               '])([еиэюьüЕИЭЮЬÜ])/u' => '$1Ö$2$3$4',
+                       '/' . self::WB . 'О([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьüЕИЭЮЬÜ])/u'
+                               => 'Ö$1$2$3',
+
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])о([' . Crh::C_CONS . '])([еиэюьü])/u' => '$1ö$2$3',
+                       '/' . self::WB . 'о([' . Crh::C_CONS . '])([еиэюьü])/u' => 'ö$1$2',
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])О([' . Crh::C_CONS . '])([еиэюьüЕИЭЮЬÜ])/u'
+                               => '$1Ö$2$3',
+                       '/' . self::WB . 'О([' . Crh::C_CONS . '])([еиэюьüЕИЭЮЬÜ])/u' => 'Ö$1$2',
 
                        # ё => yö
-                       '/'.self::WB.'ё(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([ьеюü])/u' => 'yö$1$2$3',
-                       '/'.self::WB.'Ё(['.Crh::C_CONS_LC.'])(['.Crh::C_CONS_LC.'])([ьеюü])/u' => 'Yö$1$2$3',
-                       '/'.self::WB.'Ё(['.Crh::C_CONS_UC.'])(['.Crh::C_CONS_UC.'])([ЬЕЮÜ])/u' => 'YÖ$1$2$3',
-                       '/'.self::WB.'ё(['.Crh::C_CONS.'])([ьеюü])/u' => 'yö$1$2',
-                       '/'.self::WB.'Ё(['.Crh::C_CONS_LC.'])([ьеюü])/u' => 'Yö$1$2',
-                       '/'.self::WB.'Ё(['.Crh::C_CONS_UC.'])([ЬЕЮÜ])/u' => 'YÖ$1$2',
+                       '/' . self::WB . 'ё([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([ьеюü])/u' => 'yö$1$2$3',
+                       '/' . self::WB . 'Ё([' . Crh::C_CONS_LC . '])([' . Crh::C_CONS_LC . '])([ьеюü])/u' => 'Yö$1$2$3',
+                       '/' . self::WB . 'Ё([' . Crh::C_CONS_UC . '])([' . Crh::C_CONS_UC . '])([ЬЕЮÜ])/u' => 'YÖ$1$2$3',
+                       '/' . self::WB . 'ё([' . Crh::C_CONS . '])([ьеюü])/u' => 'yö$1$2',
+                       '/' . self::WB . 'Ё([' . Crh::C_CONS_LC . '])([ьеюü])/u' => 'Yö$1$2',
+                       '/' . self::WB . 'Ё([' . Crh::C_CONS_UC . '])([ЬЕЮÜ])/u' => 'YÖ$1$2',
 
                        # у => ü, ую => üyü
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])у(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u'
-                               => '$1ü$2$3$4',
-                       '/'.self::WB.'у(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u' => 'ü$1$2$3',
-                       '/'.self::WB.'ую(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u' => 'üyü$1$2$3',
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])У(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u'
-                               => '$1Ü$2$3$4',
-                       '/'.self::WB.'У(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u' => 'Ü$1$2$3',
-                       '/'.self::WB.'Ую(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u' => 'Üyü$1$2$3',
-                       '/'.self::WB.'УЮ(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([еиэюьü])/u' => 'ÜYÜ$1$2$3',
-
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])у(['.Crh::C_CONS.'])([еиэюьü])/u' => '$1ü$2$3',
-                       '/'.self::WB.'у(['.Crh::C_CONS.'])([еиэюьü])/u' => 'ü$1$2',
-                       '/'.self::WB.'ую(['.Crh::C_CONS.'])([еиэюьü])/u' => 'üyü$1$2',
-                       '/'.self::WB.'(['.Crh::C_M_CONS.'])У(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u' => '$1Ü$2$3',
-                       '/'.self::WB.'У(['.Crh::C_CONS.'])([еиэюьüЕИЭЮЬÜ])/u' => 'Ü$1$2',
-                       '/'.self::WB.'Ую(['.Crh::C_CONS.'])([еиэюьü])/u' => 'Üyü$1$2',
-                       '/'.self::WB.'УЮ(['.Crh::C_CONS.'])([еиэюьü])/u' => 'ÜYÜ$1$2',
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])у([' . Crh::C_CONS . '])([' . Crh::C_CONS .
+                               '])([еиэюьü])/u' => '$1ü$2$3$4',
+                       '/' . self::WB . 'у([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьü])/u' => 'ü$1$2$3',
+                       '/' . self::WB . 'ую([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьü])/u' => 'üyü$1$2$3',
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])У([' . Crh::C_CONS . '])([' . Crh::C_CONS .
+                               '])([еиэюьüЕИЭЮЬÜ])/u' => '$1Ü$2$3$4',
+                       '/' . self::WB . 'У([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьüЕИЭЮЬÜ])/u'
+                               => 'Ü$1$2$3',
+                       '/' . self::WB . 'Ую([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьü])/u' => 'Üyü$1$2$3',
+                       '/' . self::WB . 'УЮ([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([еиэюьü])/u' => 'ÜYÜ$1$2$3',
+
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])у([' . Crh::C_CONS . '])([еиэюьü])/u' => '$1ü$2$3',
+                       '/' . self::WB . 'у([' . Crh::C_CONS . '])([еиэюьü])/u' => 'ü$1$2',
+                       '/' . self::WB . 'ую([' . Crh::C_CONS . '])([еиэюьü])/u' => 'üyü$1$2',
+                       '/' . self::WB . '([' . Crh::C_M_CONS . '])У([' . Crh::C_CONS . '])([еиэюьüЕИЭЮЬÜ])/u'
+                               => '$1Ü$2$3',
+                       '/' . self::WB . 'У([' . Crh::C_CONS . '])([еиэюьüЕИЭЮЬÜ])/u' => 'Ü$1$2',
+                       '/' . self::WB . 'Ую([' . Crh::C_CONS . '])([еиэюьü])/u' => 'Üyü$1$2',
+                       '/' . self::WB . 'УЮ([' . Crh::C_CONS . '])([еиэюьü])/u' => 'ÜYÜ$1$2',
 
                        # ю => yü
-                       '/'.self::WB.'([аыоуеиёюАЫОУЕИЁЮ]?)ю(['.Crh::C_CONS.'])(['.Crh::C_CONS.'])([ьеюü])/u'
+                       '/' . self::WB . '([аыоуеиёюАЫОУЕИЁЮ]?)ю([' . Crh::C_CONS . '])([' . Crh::C_CONS . '])([ьеюü])/u'
                                => '$1yü$2$3$4',
-                       '/'.self::WB.'([АЫОУЕИЁЮ]?)Ю(['.Crh::C_CONS_LC.'])(['.Crh::C_CONS_LC.'])([ьеюü])/u'
+                       '/' . self::WB . '([АЫОУЕИЁЮ]?)Ю([' . Crh::C_CONS_LC . '])([' . Crh::C_CONS_LC . '])([ьеюü])/u'
                                => '$1Yü$2$3$4',
-                       '/'.self::WB.'([АЫОУЕИЁЮ]?)Ю(['.Crh::C_CONS_UC.'])(['.Crh::C_CONS_UC.'])([ЬЕЮÜ])/u'
+                       '/' . self::WB . '([АЫОУЕИЁЮ]?)Ю([' . Crh::C_CONS_UC . '])([' . Crh::C_CONS_UC . '])([ЬЕЮÜ])/u'
                                => '$1YÜ$2$3$4',
-                       '/'.self::WB.'([аыоуеиёюАЫОУЕИЁЮ]?)ю(['.Crh::C_CONS.'])([ьеюü])/u' => '$1yü$2$3',
-                       '/'.self::WB.'([АЫОУЕИЁЮ]?)Ю(['.Crh::C_CONS_LC.'])([ьеюü])/u' => '$1Yü$2$3',
-                       '/'.self::WB.'([АЫОУЕИЁЮ]?)Ю(['.Crh::C_CONS_UC.'])([ЬЕЮÜ])/u' => '$1YÜ$2$3',
+                       '/' . self::WB . '([аыоуеиёюАЫОУЕИЁЮ]?)ю([' . Crh::C_CONS . '])([ьеюü])/u' => '$1yü$2$3',
+                       '/' . self::WB . '([АЫОУЕИЁЮ]?)Ю([' . Crh::C_CONS_LC . '])([ьеюü])/u' => '$1Yü$2$3',
+                       '/' . self::WB . '([АЫОУЕИЁЮ]?)Ю([' . Crh::C_CONS_UC . '])([ЬЕЮÜ])/u' => '$1YÜ$2$3',
 
                        # e => ye, я => ya
-                       '/'.self::WB.'е/u' => 'ye',
-                       '/'.self::WB.'Е(['.Crh::C_LC.'cğñqöü])/u' => 'Ye$1',
-                       '/'.self::WB.'Е(['.Crh::C_UC.'CĞÑQÖÜ])/u' => 'YE$1',
-                       '/'.self::WB.'я/u' => 'ya',
-                       '/'.self::WB.'Я(['.Crh::C_LC.'cğñqöü])/u' => 'Ya$1',
-                       '/'.self::WB.'Я(['.Crh::C_UC.'CĞÑQÖÜ])/u' => 'YA$1',
+                       '/' . self::WB . 'е/u' => 'ye',
+                       '/' . self::WB . 'Е([' . Crh::C_LC . 'cğñqöü])/u' => 'Ye$1',
+                       '/' . self::WB . 'Е([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => 'YE$1',
+                       '/' . self::WB . 'я/u' => 'ya',
+                       '/' . self::WB . 'Я([' . Crh::C_LC . 'cğñqöü])/u' => 'Ya$1',
+                       '/' . self::WB . 'Я([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => 'YA$1',
                        '/([аеёиоуыэюяйьъaeöüАЕЁИОУЫЭЮЯЙЬЪAEÖÜ])е/u' => '$1ye',
-                       '/([аеёиоуыэюяйьъaeöüАЕЁИОУЫЭЮЯЙЬЪAEÖÜ])Е(['.Crh::C_LC.'cğñqöü])/u' => '$1Ye$2',
-                       '/([аеёиоуыэюяйьъaeöüАЕЁИОУЫЭЮЯЙЬЪAEÖÜ])Е(['.Crh::C_UC.'CĞÑQÖÜ])/u' => '$1YE$2',
+                       '/([аеёиоуыэюяйьъaeöüАЕЁИОУЫЭЮЯЙЬЪAEÖÜ])Е([' . Crh::C_LC . 'cğñqöü])/u' => '$1Ye$2',
+                       '/([аеёиоуыэюяйьъaeöüАЕЁИОУЫЭЮЯЙЬЪAEÖÜ])Е([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => '$1YE$2',
                        '/([аеёиоуыэюяйьъaeöüğqАЕЁИОУЫЭЮЯЙЬЪAEÖÜĞQ])я/u' => '$1ya',
-                       '/([аеёиоуыэюяйьъaeöüğqАЕЁИОУЫЭЮЯЙЬЪAEÖÜĞQ])Я(['.Crh::C_LC.'cğñqöü])/u' => '$1Ya$2',
-                       '/([аеёиоуыэюяйьъaeöüğqАЕЁИОУЫЭЮЯЙЬЪAEÖÜĞQ])Я(['.Crh::C_UC.'CĞÑQÖÜ])/u' => '$1YA$2',
+                       '/([аеёиоуыэюяйьъaeöüğqАЕЁИОУЫЭЮЯЙЬЪAEÖÜĞQ])Я([' . Crh::C_LC . 'cğñqöü])/u' => '$1Ya$2',
+                       '/([аеёиоуыэюяйьъaeöüğqАЕЁИОУЫЭЮЯЙЬЪAEÖÜĞQ])Я([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => '$1YA$2',
 
                        ###############################
                        # не зависят от места в слове #
@@ -576,19 +580,19 @@ class CrhExceptions {
 
                        # Ö, Ü 1-й заход: ё, ю после согласных > ö, ü
                        # Ö, Ü 1st instance: ё, ю after consonants > ö, ü
-                       '/(['.Crh::C_CONS.'])ю/u' => '$1ü',
-                       '/(['.Crh::C_CONS.'])Ю/u' => '$1Ü',
-                       '/(['.Crh::C_CONS.'])ё/u' => '$1ö',
-                       '/(['.Crh::C_CONS.'])Ё/u' => '$1Ö',
+                       '/([' . Crh::C_CONS . '])ю/u' => '$1ü',
+                       '/([' . Crh::C_CONS . '])Ю/u' => '$1Ü',
+                       '/([' . Crh::C_CONS . '])ё/u' => '$1ö',
+                       '/([' . Crh::C_CONS . '])Ё/u' => '$1Ö',
 
                        # остальные вхождения о, у, ё, ю
                        # other occurences of о, у, ё, ю
-                       '/Ё(['.Crh::C_UC.'CĞÑQÖÜ])/u' => 'YO$1',
-                       '/Ю(['.Crh::C_UC.'CĞÑQÖÜ])/u' => 'YU$1',
+                       '/Ё([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => 'YO$1',
+                       '/Ю([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => 'YU$1',
 
                        # Ц & Щ
-                       '/Ц(['.Crh::C_UC.'CĞÑQÖÜ])/u' => 'TS$1',
-                       '/Щ(['.Crh::C_UC.'CĞÑQÖÜ])/u' => 'ŞÇ$1',
+                       '/Ц([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => 'TS$1',
+                       '/Щ([' . Crh::C_UC . 'CĞÑQÖÜ])/u' => 'ŞÇ$1',
                ];
 
                $this->Latn2CyrlRegexes = [
@@ -596,31 +600,31 @@ class CrhExceptions {
                        // TODO: refactor upper/lower/first capital whole words without
                        // regexes into simpler list
 
-                       '/'.self::WB.'an'.self::WB.'/u' => 'ань',
-                       '/'.self::WB.'An'.self::WB.'/u' => 'Ань',
-                       '/'.self::WB.'AN'.self::WB.'/u' => 'АНЬ',
-                       '/'.self::WB.'ange'.self::WB.'/u' => 'аньге',
-                       '/'.self::WB.'Ange'.self::WB.'/u' => 'Аньге',
-                       '/'.self::WB.'ANGE'.self::WB.'/u' => 'АНЬГЕ',
-                       '/'.self::WB.'ande'.self::WB.'/u' => 'аньде',
-                       '/'.self::WB.'Ande'.self::WB.'/u' => 'Аньде',
-                       '/'.self::WB.'ANDE'.self::WB.'/u' => 'АНЬДЕ',
-                       '/'.self::WB.'anki'.self::WB.'/u' => 'аньки',
-                       '/'.self::WB.'Anki'.self::WB.'/u' => 'Аньки',
-                       '/'.self::WB.'ANKİ'.self::WB.'/u' => 'АНЬКИ',
-                       '/'.self::WB.'deral'.self::WB.'/u' => 'деръал',
-                       '/'.self::WB.'Deral'.self::WB.'/u' => 'Деръал',
-                       '/'.self::WB.'DERAL'.self::WB.'/u' => 'ДЕРЪАЛ',
-                       '/'.self::WB.'kör'.self::WB.'/u' => 'кёр',
-                       '/'.self::WB.'Kör'.self::WB.'/u' => 'Кёр',
-                       '/'.self::WB.'KÖR'.self::WB.'/u' => 'КЁР',
-                       '/'.self::WB.'mer'.self::WB.'/u' => 'мэр',
-                       '/'.self::WB.'Mer'.self::WB.'/u' => 'Мэр',
-                       '/'.self::WB.'MER'.self::WB.'/u' => 'МЭР',
-
-                       '/'.self::WB.'cönk/u' => 'джонк',
-                       '/'.self::WB.'Cönk/u' => 'Джонк',
-                       '/'.self::WB.'CÖNK/u' => 'ДЖОНК',
+                       '/' . self::WB . 'an' . self::WB . '/u' => 'ань',
+                       '/' . self::WB . 'An' . self::WB . '/u' => 'Ань',
+                       '/' . self::WB . 'AN' . self::WB . '/u' => 'АНЬ',
+                       '/' . self::WB . 'ange' . self::WB . '/u' => 'аньге',
+                       '/' . self::WB . 'Ange' . self::WB . '/u' => 'Аньге',
+                       '/' . self::WB . 'ANGE' . self::WB . '/u' => 'АНЬГЕ',
+                       '/' . self::WB . 'ande' . self::WB . '/u' => 'аньде',
+                       '/' . self::WB . 'Ande' . self::WB . '/u' => 'Аньде',
+                       '/' . self::WB . 'ANDE' . self::WB . '/u' => 'АНЬДЕ',
+                       '/' . self::WB . 'anki' . self::WB . '/u' => 'аньки',
+                       '/' . self::WB . 'Anki' . self::WB . '/u' => 'Аньки',
+                       '/' . self::WB . 'ANKİ' . self::WB . '/u' => 'АНЬКИ',
+                       '/' . self::WB . 'deral' . self::WB . '/u' => 'деръал',
+                       '/' . self::WB . 'Deral' . self::WB . '/u' => 'Деръал',
+                       '/' . self::WB . 'DERAL' . self::WB . '/u' => 'ДЕРЪАЛ',
+                       '/' . self::WB . 'kör' . self::WB . '/u' => 'кёр',
+                       '/' . self::WB . 'Kör' . self::WB . '/u' => 'Кёр',
+                       '/' . self::WB . 'KÖR' . self::WB . '/u' => 'КЁР',
+                       '/' . self::WB . 'mer' . self::WB . '/u' => 'мэр',
+                       '/' . self::WB . 'Mer' . self::WB . '/u' => 'Мэр',
+                       '/' . self::WB . 'MER' . self::WB . '/u' => 'МЭР',
+
+                       '/' . self::WB . 'cönk/u' => 'джонк',
+                       '/' . self::WB . 'Cönk/u' => 'Джонк',
+                       '/' . self::WB . 'CÖNK/u' => 'ДЖОНК',
 
                        # (y)etsin -> етсин/этсин
                        # note that target starts with CYRILLIC е/Е!
@@ -636,67 +640,77 @@ class CrhExceptions {
 
                        # буква Ё - первый заход
                        # расставляем Ь после согласных
-                       '/'.self::WB.'([yY])ö(['.Crh::L_N_CONS.'])([aAuU'.Crh::L_CONS.']|'.self::WB.')/u' => '$1ö$2ь$3',
-                       '/'.self::WB.'([yY])Ö(['.Crh::L_N_CONS.'])([aAuU'.Crh::L_CONS.']|'.self::WB.')/u' => '$1Ö$2Ь$3',
-                       '/'.self::WB.'AQŞ([^AEI]|'.self::WB.')/u' => 'АКъШ$1',
+                       '/' . self::WB . '([yY])ö([' . Crh::L_N_CONS . '])([aAuU' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => '$1ö$2ь$3',
+                       '/' . self::WB . '([yY])Ö([' . Crh::L_N_CONS . '])([aAuU' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => '$1Ö$2Ь$3',
+                       '/' . self::WB . 'AQŞ([^AEI]|' . self::WB . ')/u' => 'АКъШ$1',
 
                        # буква Ю - первый заход
                        # расставляем Ь после согласных
-                       '/'.self::WB.'([yY])ü(['.Crh::L_N_CONS.'])([aAuU'.Crh::L_CONS.']|'.self::WB.')/u' => '$1ü$2ь$3',
-                       '/'.self::WB.'([yY])Ü(['.Crh::L_N_CONS.'])([aAuU'.Crh::L_CONS.']|'.self::WB.')/u' => '$1Ü$2Ь$3',
-
-                       '/'.self::WB.'([bcgkpşBCGKPŞ])ö(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u'
-                               => '$1ö$2ь$3',
-                       '/'.self::WB.'([bcgkpşBCGKPŞ])Ö(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u'
-                               => '$1Ö$2Ь$3',
-                       '/'.self::WB.'([bcgkpşBCGKPŞ])Ö(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u'
-                               => '$1Ö$2Ь$3',
-                       '/'.self::WB.'([bcgkpşBCGKPŞ])ü(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u'
+                       '/' . self::WB . '([yY])ü([' . Crh::L_N_CONS . '])([aAuU' . Crh::L_CONS . ']|' . self::WB . ')/u'
                                => '$1ü$2ь$3',
-                       '/'.self::WB.'([bcgkpşBCGKPŞ])Ü(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u'
-                               => '$1Ü$2Ь$3',
-                       '/'.self::WB.'([bcgkpşBCGKPŞ])Ü(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u'
+                       '/' . self::WB . '([yY])Ü([' . Crh::L_N_CONS . '])([aAuU' . Crh::L_CONS . ']|' . self::WB . ')/u'
                                => '$1Ü$2Ь$3',
 
+                       '/' . self::WB . '([bcgkpşBCGKPŞ])ö([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' .
+                               self::WB . ')/u' => '$1ö$2ь$3',
+                       '/' . self::WB . '([bcgkpşBCGKPŞ])Ö([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' .
+                               self::WB . ')/u' => '$1Ö$2Ь$3',
+                       '/' . self::WB . '([bcgkpşBCGKPŞ])Ö([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' .
+                               self::WB . ')/u' => '$1Ö$2Ь$3',
+                       '/' . self::WB . '([bcgkpşBCGKPŞ])ü([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' .
+                               self::WB . ')/u' => '$1ü$2ь$3',
+                       '/' . self::WB . '([bcgkpşBCGKPŞ])Ü([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' .
+                               self::WB . ')/u' => '$1Ü$2Ь$3',
+                       '/' . self::WB . '([bcgkpşBCGKPŞ])Ü([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' .
+                               self::WB . ')/u' => '$1Ü$2Ь$3',
+
                         # ö и ü в начале слова
                         # случаи, когда нужен Ь
-                       '/'.self::WB.'ö(['.Crh::L_N_CONS.'pP])(['.Crh::L_CONS.']|'.self::WB.')/u' => 'ö$1ь$2',
-                       '/'.self::WB.'Ö(['.Crh::L_N_CONS_LC.'p])(['.Crh::L_CONS.']|'.self::WB.')/u' => 'Ö$1ь$2',
-                       '/'.self::WB.'Ö(['.Crh::L_N_CONS_UC.'P])(['.Crh::L_CONS.']|'.self::WB.')/u' => 'Ö$1Ь$2',
-                       '/'.self::WB.'ü(['.Crh::L_N_CONS.'])(['.Crh::L_CONS.']|'.self::WB.')/u' => 'ü$1ь$2',
-                       '/'.self::WB.'Ü(['.Crh::L_N_CONS_LC.'])(['.Crh::L_CONS.']|'.self::WB.')/u' => 'Ü$1ь$2',
-                       '/'.self::WB.'Ü(['.Crh::L_N_CONS_UC.'])(['.Crh::L_CONS.']|'.self::WB.')/u' => 'Ü$1Ь$2',
-
-                       '/ts'.self::WB.'/u' => 'ц',
-                       '/şç'.self::WB.'/u' => 'щ',
-                       '/Ş[çÇ]'.self::WB.'/u' => 'Щ',
-                       '/T[sS]'.self::WB.'/u' => 'Ц',
+                       '/' . self::WB . 'ö([' . Crh::L_N_CONS . 'pP])([' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => 'ö$1ь$2',
+                       '/' . self::WB . 'Ö([' . Crh::L_N_CONS_LC . 'p])([' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => 'Ö$1ь$2',
+                       '/' . self::WB . 'Ö([' . Crh::L_N_CONS_UC . 'P])([' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => 'Ö$1Ь$2',
+                       '/' . self::WB . 'ü([' . Crh::L_N_CONS . '])([' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => 'ü$1ь$2',
+                       '/' . self::WB . 'Ü([' . Crh::L_N_CONS_LC . '])([' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => 'Ü$1ь$2',
+                       '/' . self::WB . 'Ü([' . Crh::L_N_CONS_UC . '])([' . Crh::L_CONS . ']|' . self::WB . ')/u'
+                               => 'Ü$1Ь$2',
+
+                       '/ts' . self::WB . '/u' => 'ц',
+                       '/şç' . self::WB . '/u' => 'щ',
+                       '/Ş[çÇ]' . self::WB . '/u' => 'Щ',
+                       '/T[sS]' . self::WB . '/u' => 'Ц',
 
                        # Ь после Л
                        # add Ь after Л
-                       '/(['.Crh::L_F.'])l(['.Crh::L_CONS_LC.']|'.self::WB.')/u' => '$1ль$2',
-                       '/(['.Crh::L_F_UC.'])L(['.Crh::L_CONS.']|'.self::WB.')/u' => '$1ЛЬ$2',
+                       '/([' . Crh::L_F . '])l([' . Crh::L_CONS_LC . ']|' . self::WB . ')/u' => '$1ль$2',
+                       '/([' . Crh::L_F_UC . '])L([' . Crh::L_CONS . ']|' . self::WB . ')/u' => '$1ЛЬ$2',
 
                        # относятся к началу слова
-                       '/'.self::WB.'ts/u' => 'ц',
-                       '/'.self::WB.'T[sS]/u' => 'Ц',
+                       '/' . self::WB . 'ts/u' => 'ц',
+                       '/' . self::WB . 'T[sS]/u' => 'Ц',
 
-                       '/'.self::WB.'şç/u' => 'щ',
-                       '/'.self::WB.'Ş[çÇ]/u' => 'Щ',
+                       '/' . self::WB . 'şç/u' => 'щ',
+                       '/' . self::WB . 'Ş[çÇ]/u' => 'Щ',
 
                        # Э
-                       '/('.self::WB.'|['.Crh::L_VOW.'аеэяАЕЭЯ])e/u' => '$1э',
-                       '/('.self::WB.'|['.Crh::L_VOW_UC.'АЕЭЯ])E/u' => '$1Э',
+                       '/(' . self::WB . '|[' . Crh::L_VOW . 'аеэяАЕЭЯ])e/u' => '$1э',
+                       '/(' . self::WB . '|[' . Crh::L_VOW_UC . 'АЕЭЯ])E/u' => '$1Э',
 
-                       '/'.self::WB.'(['.Crh::L_M_CONS.'])ö/u' => '$1о',
-                       '/'.self::WB.'(['.Crh::L_M_CONS.'])Ö/u' => '$1О',
-                       '/'.self::WB.'(['.Crh::L_M_CONS.'])ü/u' => '$1у',
-                       '/'.self::WB.'(['.Crh::L_M_CONS.'])Ü/u' => '$1У',
+                       '/' . self::WB . '([' . Crh::L_M_CONS . '])ö/u' => '$1о',
+                       '/' . self::WB . '([' . Crh::L_M_CONS . '])Ö/u' => '$1О',
+                       '/' . self::WB . '([' . Crh::L_M_CONS . '])ü/u' => '$1у',
+                       '/' . self::WB . '([' . Crh::L_M_CONS . '])Ü/u' => '$1У',
 
-                       '/'.self::WB.'ö/u' => 'о',
-                       '/'.self::WB.'Ö/u' => 'О',
-                       '/'.self::WB.'ü/u' => 'у',
-                       '/'.self::WB.'Ü/u' => 'У',
+                       '/' . self::WB . 'ö/u' => 'о',
+                       '/' . self::WB . 'Ö/u' => 'О',
+                       '/' . self::WB . 'ü/u' => 'у',
+                       '/' . self::WB . 'Ü/u' => 'У',
 
                        # некоторые исключения
                        # some exceptions
@@ -718,10 +732,10 @@ class CrhExceptions {
                        '/T[sS][iİ]([^zZñÑ])/u' => 'ЦИ$1',
                        '/ts([ou])/u' => 'ц$1',
                        '/T[sS]([oOuU])/u' => 'Ц$1',
-                       '/ts(['.Crh::L_CONS.'])/u' => 'ц$1',
-                       '/T[sS](['.Crh::L_CONS.'])/u' => 'Ц$1',
-                       '/(['.Crh::L_CONS.'])ts/u' => '$1ц',
-                       '/(['.Crh::L_CONS.'])T[sS]/u' => '$1Ц',
+                       '/ts([' . Crh::L_CONS . '])/u' => 'ц$1',
+                       '/T[sS]([' . Crh::L_CONS . '])/u' => 'Ц$1',
+                       '/([' . Crh::L_CONS . '])ts/u' => '$1ц',
+                       '/([' . Crh::L_CONS . '])T[sS]/u' => '$1Ц',
                        '/tsиал/u' => 'циал',
                        '/TSИАЛ/u' => 'ЦИАЛ',
 
@@ -730,15 +744,15 @@ class CrhExceptions {
                        '/[ьЬ]([iİ])/u' => '$1',
 
                        # ya & ye
-                       '/(['.Crh::L_CONS.'])ya/u' => '$1ья',
-                       '/(['.Crh::L_CONS.'])Y[aA]/u' => '$1ЬЯ',
-                       '/(['.Crh::L_CONS.'])ye/u' => '$1ье',
-                       '/(['.Crh::L_CONS.'])Y[eE]/u' => '$1ЬЕ',
+                       '/([' . Crh::L_CONS . '])ya/u' => '$1ья',
+                       '/([' . Crh::L_CONS . '])Y[aA]/u' => '$1ЬЯ',
+                       '/([' . Crh::L_CONS . '])ye/u' => '$1ье',
+                       '/([' . Crh::L_CONS . '])Y[eE]/u' => '$1ЬЕ',
 
                         # расставляем Ь перед Ё
                         # place Ь in front of Ё
-                       '/(['.Crh::L_CONS.'])y[oö]/u' => '$1ьё',
-                       '/(['.Crh::L_CONS.'])Y[oOöÖ]/u' => '$1ЬЁ',
+                       '/([' . Crh::L_CONS . '])y[oö]/u' => '$1ьё',
+                       '/([' . Crh::L_CONS . '])Y[oOöÖ]/u' => '$1ЬЁ',
                         # оставшиеся вхождения yo и yö
                         # remaining occurrences of yo and yö
                        '/y[oö]/u' => 'ё',
@@ -746,8 +760,8 @@ class CrhExceptions {
 
                         # расставляем Ь перед Ю
                         # place Ь in front of Ю
-                       '/(['.Crh::L_CONS.'])y[uü]/u' => '$1ью',
-                       '/(['.Crh::L_CONS.'])Y[uUüÜ]/u' => '$1ЬЮ',
+                       '/([' . Crh::L_CONS . '])y[uü]/u' => '$1ью',
+                       '/([' . Crh::L_CONS . '])Y[uUüÜ]/u' => '$1ЬЮ',
                         # оставшиеся вхождения yu и yü
                         # remaining occurrences of yu and yü
                        '/y[uü]/u' => 'ю',
@@ -758,18 +772,18 @@ class CrhExceptions {
                        '/[ьЬ]([aA])/u' => '$1',
 
                        # дж
-                       '/C(['.Crh::L_UC.Crh::C_UC.'АЕЁЙОУЭЮЯ])/u' => 'ДЖ$1',
-                       '/(['.Crh::L_UC.Crh::C_UC.'АЕЁЙОУЭЮЯ])C/u' => '$1ДЖ',
+                       '/C([' . Crh::L_UC . Crh::C_UC . 'АЕЁЙОУЭЮЯ])/u' => 'ДЖ$1',
+                       '/([' . Crh::L_UC . Crh::C_UC . 'АЕЁЙОУЭЮЯ])C/u' => '$1ДЖ',
 
                        # гъ, къ, нъ
-                       '/Ğ(['.Crh::L_UC.Crh::C_UC.'])/u' => 'ГЪ$1',
-                       '/(['.Crh::L_UC.Crh::C_UC.'Ъ])Ğ/u' => '$1ГЪ',
+                       '/Ğ([' . Crh::L_UC . Crh::C_UC . '])/u' => 'ГЪ$1',
+                       '/([' . Crh::L_UC . Crh::C_UC . 'Ъ])Ğ/u' => '$1ГЪ',
 
-                       '/Q(['.Crh::L_UC.Crh::C_UC.'])/u' => 'КЪ$1',
-                       '/(['.Crh::L_UC.Crh::C_UC.'Ъ])Q/u' => '$1КЪ',
+                       '/Q([' . Crh::L_UC . Crh::C_UC . '])/u' => 'КЪ$1',
+                       '/([' . Crh::L_UC . Crh::C_UC . 'Ъ])Q/u' => '$1КЪ',
 
-                       '/Ñ(['.Crh::L_UC.Crh::C_UC.'])/u' => 'НЪ$1',
-                       '/(['.Crh::L_UC.Crh::C_UC.'Ъ])Ñ/u' => '$1НЪ',
+                       '/Ñ([' . Crh::L_UC . Crh::C_UC . '])/u' => 'НЪ$1',
+                       '/([' . Crh::L_UC . Crh::C_UC . 'Ъ])Ñ/u' => '$1НЪ',
 
                ];
        }
index b446cc1..6219476 100644 (file)
@@ -1669,7 +1669,6 @@ class FakeMaintenance extends Maintenance {
        protected $mSelf = "FakeMaintenanceScript";
 
        public function execute() {
-               return;
        }
 }
 
index e9a30f9..558fec8 100644 (file)
@@ -69,7 +69,7 @@ class BenchmarkTidy extends Benchmarker {
                print "Median: $median ms\n";
                print "Mean: $mean ms\n";
                print "Maximum: $max ms\n";
-               print "Memory usage: " .  $contLang->formatSize( memory_get_usage( true ) ) . "\n";
+               print "Memory usage: " . $contLang->formatSize( memory_get_usage( true ) ) . "\n";
                print "Peak memory usage: " .
                        $contLang->formatSize( memory_get_peak_usage( true ) ) . "\n";
        }
index b933434..a1820b8 100644 (file)
@@ -286,7 +286,6 @@ TEXT
                }
 
                $this->outputStatus( "\n" );
-               return;
        }
 
        /**
index 0aa8ce8..7f12252 100644 (file)
@@ -94,7 +94,7 @@ class CreateCommonPasswordCdb extends Maintenance {
                                        continue;
                                }
                                if ( isset( $alreadyWritten[$line] ) ) {
-                                       $this->output( "Password '$line' already written (line " . ( $i + 1 ) .")\n" );
+                                       $this->output( "Password '$line' already written (line " . ( $i + 1 ) . ")\n" );
                                        $skipped++;
                                        continue;
                                }
index e9a6bc5..751932d 100644 (file)
@@ -146,12 +146,10 @@ abstract class DumpIterator extends Maintenance {
 
        /* Stub function for processing additional options */
        public function checkOptions() {
-               return;
        }
 
        /* Stub function for giving data about what was computed */
        public function conclusions() {
-               return;
        }
 
        /* Core function which does whatever the maintenance script is designed to do */
index bfbbcdc..02c8bed 100644 (file)
@@ -169,7 +169,7 @@ ERROR
                                'user',
                                'user_name',
                                [
-                                       'user_name > ' .$dbw->addQuotes( $lastUsername ),
+                                       'user_name > ' . $dbw->addQuotes( $lastUsername ),
                                ],
                                __METHOD__,
                                [
index 262eb35..603f4c2 100644 (file)
@@ -105,17 +105,16 @@ abstract class MWHttpRequestTestCase extends PHPUnit\Framework\TestCase {
                $this->assertHasCookie( 'foo', 'bar', $request->getCookieJar() );
 
                $this->markTestIncomplete( 'CookieJar does not handle deletion' );
-               return;
 
-               $request = MWHttpRequest::factory( 'http://httpbin.org/cookies/delete?foo' );
-               $cookieJar = new CookieJar();
-               $cookieJar->setCookie( 'foo', 'bar', [ 'domain' => 'httpbin.org' ] );
-               $cookieJar->setCookie( 'foo2', 'bar2', [ 'domain' => 'httpbin.org' ] );
-               $request->setCookieJar( $cookieJar );
-               $status = $request->execute();
-               $this->assertTrue( $status->isGood() );
-               $this->assertNotHasCookie( 'foo', $request->getCookieJar() );
-               $this->assertHasCookie( 'foo2', 'bar2', $request->getCookieJar() );
+               // $request = MWHttpRequest::factory( 'http://httpbin.org/cookies/delete?foo' );
+               // $cookieJar = new CookieJar();
+               // $cookieJar->setCookie( 'foo', 'bar', [ 'domain' => 'httpbin.org' ] );
+               // $cookieJar->setCookie( 'foo2', 'bar2', [ 'domain' => 'httpbin.org' ] );
+               // $request->setCookieJar( $cookieJar );
+               // $status = $request->execute();
+               // $this->assertTrue( $status->isGood() );
+               // $this->assertNotHasCookie( 'foo', $request->getCookieJar() );
+               // $this->assertHasCookie( 'foo2', 'bar2', $request->getCookieJar() );
        }
 
        public function testGetResponseHeaders() {
index 51fb86d..cc3ef1c 100644 (file)
@@ -830,7 +830,7 @@ class ParserTestRunner {
         * @return ParserTestResult|false false if skipped
         */
        public function runTest( $test ) {
-               wfDebug( __METHOD__.": running {$test['desc']}" );
+               wfDebug( __METHOD__ . ": running {$test['desc']}" );
                $opts = $this->parseOptions( $test['options'] );
                $teardownGuard = $this->perTestSetup( $test );
 
index 3e18370..be4bcab 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 
-require __DIR__.'/../../maintenance/Maintenance.php';
+require __DIR__ . '/../../maintenance/Maintenance.php';
 
 define( 'MW_PARSER_TEST', true );
 
index df7ee72..20270d0 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 
+// phpcs:disable MediaWiki.Commenting.PhpunitAnnotations.NotClassTrait
+
 namespace MediaWiki\Tests\Storage;
 
 use CommentStoreComment;
index 58fd4e9..3e042f9 100644 (file)
@@ -949,7 +949,7 @@ abstract class RevisionStoreDbTestBase extends MediaWikiTestCase {
                /** @var Revision $rev */
                $rev = $page->doEditContent(
                        new WikitextContent( $text ),
-                       __METHOD__. 'a'
+                       __METHOD__ . 'a'
                )->value['revision'];
 
                $store = MediaWikiServices::getInstance()->getRevisionStore();
index dc81e1d..c765438 100644 (file)
@@ -31,7 +31,7 @@ class ComposerLockTest extends MediaWikiTestCase {
                                                'email' => 'chad@wikimedia.org',
                                        ],
                                ],
-                               'description' => 'Constant Database (CDB) wrapper library for PHP. '.
+                               'description' => 'Constant Database (CDB) wrapper library for PHP. ' .
                                        'Provides pure-PHP fallback when dba_* functions are absent.',
                        ],
                        'cssjanus/cssjanus' => [
index c758ba6..8a05641 100644 (file)
@@ -51,7 +51,7 @@ class LinkRendererTest extends MediaWikiLangTestCase {
 
                // Query added
                $this->assertEquals(
-                       '<a href="/w/index.php?title=Foobar&amp;foo=bar" '. 'title="Foobar">Foobar</a>',
+                       '<a href="/w/index.php?title=Foobar&amp;foo=bar" ' . 'title="Foobar">Foobar</a>',
                        $linkRenderer->makeKnownLink( $target, null, [], [ 'foo' => 'bar' ] )
                );
 
index 0987bd0..e6d2b27 100644 (file)
@@ -126,10 +126,10 @@ class FormatMetadataTest extends MediaWikiMediaTestCase {
                        ],
                        [
                                [ 'Software' => [ 'x-default' => 'paint.net 4.0.12', '_type' => 'lang' ] ],
-                               [ 'Software' => '<ul class="metadata-langlist">'.
-                                               '<li class="mw-metadata-lang-default">'.
-                                                       '<span class="mw-metadata-lang-value">paint.net 4.0.12</span>'.
-                                               "</li>\n".
+                               [ 'Software' => '<ul class="metadata-langlist">' .
+                                               '<li class="mw-metadata-lang-default">' .
+                                                       '<span class="mw-metadata-lang-value">paint.net 4.0.12</span>' .
+                                               "</li>\n" .
                                        '</ul>'
                                ],
                        ],
index 7a47a63..a1ad8f9 100644 (file)
@@ -262,7 +262,7 @@ class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
 
                // Set up objects
                $module = $this->getMockBuilder( TestResourceLoaderWikiModule::class )
-                       ->setMethods( [ 'getPages' ] ) ->getMock();
+                       ->setMethods( [ 'getPages' ] )->getMock();
                $module->method( 'getPages' )->willReturn( $pages );
                $module::$returnFetchTitleInfo = $titleInfo;
                $rl = new EmptyResourceLoader();
@@ -330,7 +330,7 @@ class ResourceLoaderWikiModuleTest extends ResourceLoaderTestCase {
        public function testGetContent( $expected, $title ) {
                $context = $this->getResourceLoaderContext( [], new EmptyResourceLoader );
                $module = $this->getMockBuilder( ResourceLoaderWikiModule::class )
-                       ->setMethods( [ 'getContentObj' ] ) ->getMock();
+                       ->setMethods( [ 'getContentObj' ] )->getMock();
                $module->expects( $this->any() )
                        ->method( 'getContentObj' )->willReturn( null );
 
index b217af1..8eb233b 100644 (file)
@@ -105,7 +105,7 @@ JSON;
                                ],
                                [
                                        'method' => 'GET',
-                                       'userAgent' => Http::userAgent() ." SparqlClient",
+                                       'userAgent' => Http::userAgent() . " SparqlClient",
                                        'timeout' => 30
                                ]
                        ],
index 26f6908..8ef8cb0 100644 (file)
@@ -461,7 +461,7 @@ class WatchedItemStoreUnitTest extends MediaWikiTestCase {
                        "(wl_notificationtimestamp >= 'TS111TS') OR (wl_notificationtimestamp IS NULL)" .
                        '))))' .
                        ') OR ((wl_namespace = 1) AND (' .
-                       "(((wl_title = 'AnotherDbKey') AND (".
+                       "(((wl_title = 'AnotherDbKey') AND (" .
                        "(wl_notificationtimestamp >= 'TS123TS') OR (wl_notificationtimestamp IS NULL)" .
                        ')))))';
                $mockDb->expects( $this->once() )
@@ -564,7 +564,7 @@ class WatchedItemStoreUnitTest extends MediaWikiTestCase {
                        "(wl_notificationtimestamp >= 'TS111TS') OR (wl_notificationtimestamp IS NULL)" .
                        '))))' .
                        ') OR ((wl_namespace = 1) AND (' .
-                       "(((wl_title = 'AnotherDbKey') AND (".
+                       "(((wl_title = 'AnotherDbKey') AND (" .
                        "(wl_notificationtimestamp >= 'TS123TS') OR (wl_notificationtimestamp IS NULL)" .
                        '))))' .
                        ') OR ' .