Site: Explicit allow setLanguageCode( null )
authorFomafix <fomafix@googlemail.com>
Tue, 26 Jun 2018 07:30:39 +0000 (09:30 +0200)
committerFomafix <fomafix@googlemail.com>
Tue, 12 Mar 2019 09:36:52 +0000 (10:36 +0100)
$site->setLanguageCode( null ) is already used in
DBSiteStore::loadSites and this worked because
Language::isValidCode( null ) === true.

This change explicit check for null and allow to set null without
depending on Language::isValidCode( null ) === true.

Change-Id: I0c9fe03cbf1434b0340e61e96360c0aaeb0fe89d

includes/site/Site.php

index 01b2a3c..ec13765 100644 (file)
@@ -460,10 +460,10 @@ class Site implements Serializable {
         *
         * @since 1.21
         *
-        * @param string $languageCode
+        * @param string|null $languageCode
         */
        public function setLanguageCode( $languageCode ) {
-               if ( !Language::isValidCode( $languageCode ) ) {
+               if ( $languageCode !== null && !Language::isValidCode( $languageCode ) ) {
                        throw new InvalidArgumentException( "$languageCode is not a valid language code." );
                }
                $this->languageCode = $languageCode;