[TASK] Set phpstan parameter checkPhpDocMissingReturn to true 10/63810/9
authorAlexander Schnitzler <git@alexanderschnitzler.de>
Fri, 20 Mar 2020 11:21:16 +0000 (12:21 +0100)
committerDaniel Goerz <daniel.goerz@posteo.de>
Fri, 27 Mar 2020 15:36:07 +0000 (16:36 +0100)
Releases: master
Resolves: #90802
Change-Id: I84da713c7b8c68ae67b6b9c33ad66dcbac8d72bb
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/63810
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Frank Nägler <frank.naegler@typo3.org>
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Frank Nägler <frank.naegler@typo3.org>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
19 files changed:
Build/phpstan.level2.neon
phpstan.neon
typo3/sysext/backend/Classes/Middleware/LockedBackendGuard.php
typo3/sysext/core/Classes/Database/SoftReferenceIndex.php
typo3/sysext/core/Classes/Html/HtmlParser.php
typo3/sysext/core/Classes/Resource/AbstractRepository.php
typo3/sysext/core/Classes/Resource/InaccessibleFolder.php
typo3/sysext/core/Classes/Utility/File/BasicFileUtility.php
typo3/sysext/core/Classes/Utility/GeneralUtility.php
typo3/sysext/form/Classes/ViewHelpers/Form/DatePickerViewHelper.php
typo3/sysext/form/Classes/ViewHelpers/Form/TimePickerViewHelper.php
typo3/sysext/indexed_search/Classes/Controller/SearchController.php
typo3/sysext/indexed_search/Classes/Hook/CrawlerHook.php
typo3/sysext/indexed_search/Classes/Indexer.php
typo3/sysext/indexed_search/Classes/Lexer.php
typo3/sysext/indexed_search/Classes/Utility/IndexedSearchUtility.php
typo3/sysext/redirects/Classes/Service/RedirectService.php
typo3/sysext/reports/Classes/Controller/ReportController.php
typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateModuleController.php

index b9d6c04..4d602ad 100644 (file)
@@ -1,7 +1,7 @@
 parameters:
        checkClassCaseSensitivity: true
 #      checkThisOnly: false
-#      checkPhpDocMissingReturn: true
+       checkPhpDocMissingReturn: true
 
 rules:
        - PHPStan\Rules\Cast\EchoRule
index dbab565..15fa06d 100644 (file)
@@ -94,3 +94,9 @@ parameters:
       message: "#^Constructor of class TYPO3\\\\CMS\\\\RteCKEditor\\\\Form\\\\Resolver\\\\RichTextNodeResolver has an unused parameter \\$nodeFactory\\.$#"
       count: 1
       path: typo3/sysext/rte_ckeditor/Classes/Form/Resolver/RichTextNodeResolver.php
+
+    # Ignored errors for level 2
+    -
+      message: "#^Method TYPO3\\\\CMS\\\\Core\\\\Resource\\\\Processing\\\\ImageCropScaleMaskTask\\:\\:fileNeedsProcessing\\(\\) should return bool but return statement is missing\\.$#"
+      count: 1
+      path: typo3/sysext/core/Classes/Resource/Processing/ImageCropScaleMaskTask.php
index c7e27b3..066e2aa 100644 (file)
@@ -89,6 +89,8 @@ class LockedBackendGuard implements MiddlewareInterface
             }
             throw new BackendLockedException('TYPO3 Backend locked: Browser backend is locked for maintenance. Remove lock by removing the file "typo3conf/LOCK_BACKEND" or use CLI-scripts.', 1517949793);
         }
+
+        return null;
     }
 
     /**
index f5900dc..5781a92 100644 (file)
@@ -101,7 +101,7 @@ class SoftReferenceIndex implements SingletonInterface
      * @param string $spKey The softlink parser key. This is only interesting if more than one parser is grouped in the same class. That is the case with this parser.
      * @param array $spParams Parameters of the softlink parser. Basically this is the content inside optional []-brackets after the softref keys. Parameters are exploded by ";
      * @param string $structurePath If running from inside a FlexForm structure, this is the path of the tag.
-     * @return array|bool Result array on positive matches, see description above. Otherwise FALSE
+     * @return array|bool|null Result array on positive matches, see description above. Otherwise FALSE or null
      */
     public function findRef($table, $field, $uid, $content, $spKey, $spParams, $structurePath = '')
     {
@@ -162,7 +162,7 @@ class SoftReferenceIndex implements SingletonInterface
      *
      * @param string $content The input content to analyze
      * @param array $spParams Parameters set for the softref parser key in TCA/columns. value "linkList" will split the string by comma before processing.
-     * @return array Result array on positive matches, see description above. Otherwise FALSE
+     * @return array|null Result array on positive matches, see description above. Otherwise null
      * @see \TYPO3\CMS\Frontend\ContentObject::typolink()
      * @see getTypoLinkParts()
      */
@@ -191,6 +191,8 @@ class SoftReferenceIndex implements SingletonInterface
             ];
             return $resultArray;
         }
+
+        return null;
     }
 
     /**
@@ -198,7 +200,7 @@ class SoftReferenceIndex implements SingletonInterface
      * Will search for <link ...> and <a> tags in the content string and process any found.
      *
      * @param string $content The input content to analyze
-     * @return array Result array on positive matches, see description above. Otherwise FALSE
+     * @return array|null Result array on positive matches, see description above. Otherwise null
      * @see \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::typolink()
      * @see getTypoLinkParts()
      */
@@ -297,6 +299,8 @@ class SoftReferenceIndex implements SingletonInterface
             ];
             return $resultArray;
         }
+
+        return null;
     }
 
     /**
@@ -304,7 +308,7 @@ class SoftReferenceIndex implements SingletonInterface
      *
      * @param string $content The input content to analyze
      * @param array $spParams Parameters set for the softref parser key in TCA/columns
-     * @return array Result array on positive matches, see description above. Otherwise FALSE
+     * @return array|null Result array on positive matches, see description above. Otherwise null
      */
     public function findRef_email($content, $spParams)
     {
@@ -334,6 +338,8 @@ class SoftReferenceIndex implements SingletonInterface
             ];
             return $resultArray;
         }
+
+        return null;
     }
 
     /**
@@ -341,7 +347,7 @@ class SoftReferenceIndex implements SingletonInterface
      *
      * @param string $content The input content to analyze
      * @param array $spParams Parameters set for the softref parser key in TCA/columns
-     * @return array Result array on positive matches, see description above. Otherwise FALSE
+     * @return array|null Result array on positive matches, see description above. Otherwise null
      */
     public function findRef_url($content, $spParams)
     {
@@ -374,13 +380,15 @@ class SoftReferenceIndex implements SingletonInterface
             ];
             return $resultArray;
         }
+
+        return null;
     }
 
     /**
      * Finding reference to files from extensions in content, but only to notify about their existence. No substitution
      *
      * @param string $content The input content to analyze
-     * @return array Result array on positive matches, see description above. Otherwise FALSE
+     * @return array|null Result array on positive matches, see description above. Otherwise null
      */
     public function findRef_extension_fileref($content)
     {
@@ -402,6 +410,8 @@ class SoftReferenceIndex implements SingletonInterface
             ];
             return $resultArray;
         }
+
+        return null;
     }
 
     /*************************
index 2fd3ee9..e696b53 100644 (file)
@@ -280,6 +280,7 @@ class HtmlParser
             }
             return [$attributes, $attributesMeta];
         }
+        return [null, null];
     }
 
     /**
index 1bbebd5..54e3a22 100644 (file)
@@ -106,6 +106,7 @@ abstract class AbstractRepository implements RepositoryInterface, SingletonInter
      */
     public function getAddedObjects()
     {
+        return [];
     }
 
     /**
@@ -117,6 +118,7 @@ abstract class AbstractRepository implements RepositoryInterface, SingletonInter
      */
     public function getRemovedObjects()
     {
+        return [];
     }
 
     /**
@@ -168,6 +170,7 @@ abstract class AbstractRepository implements RepositoryInterface, SingletonInter
      */
     public function countAll()
     {
+        return 0;
     }
 
     /**
index 25cca23..e82039e 100644 (file)
@@ -62,6 +62,7 @@ class InaccessibleFolder extends Folder
     public function getPublicUrl($relativeToCurrentScript = false)
     {
         $this->throwInaccessibleException();
+        return null;
     }
 
     /**
index da8e572..6585d4d 100644 (file)
@@ -94,7 +94,7 @@ class BasicFileUtility
      * @param string $theFile The input filename to check
      * @param string $theDest The directory for which to return a unique filename for $theFile. $theDest MUST be a valid directory. Should be absolute.
      * @param bool $dontCheckForUnique If set the filename is returned with the path prepended without checking whether it already existed!
-     * @return string The destination absolute filepath (not just the name!) of a unique filename/foldername in that path.
+     * @return string|null The destination absolute filepath (not just the name!) of a unique filename/foldername in that path.
      * @internal May be removed without further notice. Method has been marked as deprecated for various versions but is still used in core.
      * @todo: should go into the LocalDriver in a protected way (not important to the outside world)
      */
@@ -134,6 +134,8 @@ class BasicFileUtility
                 }
             }
         }
+
+        return null;
     }
 
     /*********************
index b61e43a..571e8ef 100644 (file)
@@ -3198,6 +3198,8 @@ class GeneralUtility
             move_uploaded_file($uploadedFileName, $tempFile);
             return @is_file($tempFile) ? $tempFile : '';
         }
+
+        return '';
     }
 
     /**
@@ -3206,7 +3208,7 @@ class GeneralUtility
      * Use this after upload_to_tempfile() or tempnam() from this class!
      *
      * @param string $uploadedTempFileName absolute file path - must reside within var/ or typo3temp/ folder.
-     * @return bool Returns TRUE if the file was unlink()'ed
+     * @return bool|null Returns TRUE if the file was unlink()'ed
      * @see upload_to_tempfile()
      * @see tempnam()
      */
@@ -3227,6 +3229,8 @@ class GeneralUtility
                 }
             }
         }
+
+        return null;
     }
 
     /**
index 0d5d42a..1a0b222 100644 (file)
@@ -142,6 +142,8 @@ class DatePickerViewHelper extends AbstractFormFieldViewHelper
         if ($this->hasArgument('initialDate')) {
             return new \DateTime($this->arguments['initialDate']);
         }
+
+        return null;
     }
 
     /**
index 99f0b88..e6175fe 100644 (file)
@@ -114,6 +114,8 @@ class TimePickerViewHelper extends AbstractFormFieldViewHelper
         if ($this->hasArgument('initialDate')) {
             return new \DateTime($this->arguments['initialDate']);
         }
+
+        return null;
     }
 
     /**
index 0eec424..cb9c216 100644 (file)
@@ -615,6 +615,7 @@ class SearchController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControlle
      */
     protected function makeRating($row)
     {
+        $default = ' ';
         switch ((string)$this->searchData['sortOrder']) {
             case 'rank_count':
                 return $row['order_val'] . ' ' . LocalizationUtility::translate('result.ratingMatches', 'IndexedSearch');
@@ -629,7 +630,7 @@ class SearchController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControlle
                     $total = MathUtility::forceIntegerInRange($base + $freqNumber, 0, 32767);
                     return ceil(log($total) / log(32767) * 100) . '%';
                 }
-                break;
+                return $default;
             case 'rank_freq':
                 $max = 10000;
                 $total = MathUtility::forceIntegerInRange($row['order_val'], 0, $max);
@@ -639,7 +640,7 @@ class SearchController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionControlle
             case 'mtime':
                 return $GLOBALS['TSFE']->cObj->calcAge($GLOBALS['EXEC_TIME'] - $row['item_mtime'], 0);
             default:
-                return ' ';
+                return $default;
         }
     }
 
index 7faf6cd..eef8b84 100644 (file)
@@ -583,7 +583,7 @@ class CrawlerHook
      * @param string $url URL string to check
      * @param array $urlLog Array of already indexed URLs (input url is looked up here and must not exist already)
      * @param string $baseUrl Base URL of the indexing process (input URL must be "inside" the base URL!)
-     * @return string Returns the URL if OK, otherwise FALSE
+     * @return string Returns the URL if OK, otherwise empty string
      */
     public function checkUrl($url, $urlLog, $baseUrl)
     {
@@ -596,6 +596,8 @@ class CrawlerHook
                 }
             }
         }
+
+        return '';
     }
 
     /**
index 46771f0..9ee148b 100644 (file)
@@ -638,6 +638,8 @@ class Indexer
                 return $reg2[1];
             }
         }
+
+        return '';
     }
 
     /**
index d1b8f65..852aebc 100644 (file)
@@ -267,6 +267,8 @@ class Lexer
         if ($cp >= 12352 && $cp <= 12543 || $cp >= 12592 && $cp <= 12687 || $cp >= 13312 && $cp <= 19903 || $cp >= 19968 && $cp <= 40879 || $cp >= 44032 && $cp <= 55215 || $cp >= 131072 && $cp <= 195103) {
             return ['cjk'];
         }
+
+        return [];
     }
 
     /**
index 3da5f9e..a4fef6f 100644 (file)
@@ -144,7 +144,7 @@ class IndexedSearchUtility
      *
      * @param string $operator The possible operator to find in the internal operator array.
      * @param array $operatorTranslateTable an array of possible operators
-     * @return string If found, the SQL operator for the localized input operator.
+     * @return string|null If found, the SQL operator for the localized input operator.
      */
     protected static function getOperator($operator, $operatorTranslateTable)
     {
@@ -160,5 +160,7 @@ class IndexedSearchUtility
                 return $operatorTranslateTable[$key][1];
             }
         }
+
+        return null;
     }
 }
index f4030d1..0482ea6 100644 (file)
@@ -124,6 +124,8 @@ class RedirectService implements LoggerAwareInterface
                 }
             }
         }
+
+        return null;
     }
 
     /**
index a29e343..4b84531 100644 (file)
@@ -139,7 +139,7 @@ class ReportController
      * Display a single report
      *
      * @param ServerRequestInterface $request
-     * @return ResponseInterface|null
+     * @return ResponseInterface|void
      */
     protected function detailAction(ServerRequestInterface $request)
     {
index e93a595..39d5416 100644 (file)
@@ -712,7 +712,7 @@ page.10.value = HELLO WORLD!
     /**
      * Return the content of the 'main' function inside the "Function menu module" if present
      *
-     * @return string
+     * @return string|null
      */
     protected function getExtObjContent()
     {
@@ -731,6 +731,8 @@ page.10.value = HELLO WORLD!
         } elseif (is_callable([$this->extObj, 'main'])) {
             return $this->extObj->main();
         }
+
+        return null;
     }
 
     /**