소스 검색

phpstan level 9 for check.translation.php (#5353)

* phpstan level 7 for check.translation.php

* Fixes

---------

Co-authored-by: Luc <sanchezluc+freshrss@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Luc SANCHEZ 2 년 전
부모
커밋
49000ca587
3개의 변경된 파일15개의 추가작업 그리고 11개의 파일을 삭제
  1. 11 7
      cli/check.translation.php
  2. 4 3
      cli/manipulate.translation.php
  3. 0 1
      tests/phpstan-next.txt

+ 11 - 7
cli/check.translation.php

@@ -9,11 +9,13 @@ require_once __DIR__ . '/i18n/I18nUsageValidator.php';
 $i18nFile = new I18nFile();
 $i18nData = new I18nData($i18nFile->load());
 
-$options = getopt("dhl:r");
+/** @var array<string,string>|false $options */
+$options = getopt('dhl:r');
 
-if (array_key_exists('h', $options)) {
+if (!is_array($options) || array_key_exists('h', $options)) {
 	checkHelp();
 }
+
 if (array_key_exists('l', $options)) {
 	$languages = array($options['l']);
 } else {
@@ -23,17 +25,16 @@ $displayResults = array_key_exists('d', $options);
 $displayReport = array_key_exists('r', $options);
 
 $isValidated = true;
-$result = array();
-$report = array();
+$result = [];
+$report = [];
 
 foreach ($languages as $language) {
 	if ($language === $i18nData::REFERENCE_LANGUAGE) {
 		$i18nValidator = new I18nUsageValidator($i18nData->getReferenceLanguage(), findUsedTranslations());
-		$isValidated = $i18nValidator->validate() && $isValidated;
 	} else {
 		$i18nValidator = new I18nCompletionValidator($i18nData->getReferenceLanguage(), $i18nData->getLanguage($language));
-		$isValidated = $i18nValidator->validate() && $isValidated;
 	}
+	$isValidated = $i18nValidator->validate() && $isValidated;
 
 	$report[$language] = sprintf('%-5s - %s', $language, $i18nValidator->displayReport());
 	$result[$language] = $i18nValidator->displayResult();
@@ -69,9 +70,12 @@ function findUsedTranslations(): array {
 	$directory = new RecursiveDirectoryIterator(__DIR__ . '/..');
 	$iterator = new RecursiveIteratorIterator($directory);
 	$regex = new RegexIterator($iterator, '/^.+\.(php|phtml)$/i', RecursiveRegexIterator::GET_MATCH);
-	$usedI18n = array();
+	$usedI18n = [];
 	foreach (array_keys(iterator_to_array($regex)) as $file) {
 		$fileContent = file_get_contents($file);
+		if ($fileContent === false) {
+			continue;
+		}
 		preg_match_all('/_t\([\'"](?P<strings>[^\'"]+)[\'"]/', $fileContent, $matches);
 		$usedI18n = array_merge($usedI18n, $matches['strings']);
 	}

+ 4 - 3
cli/manipulate.translation.php

@@ -5,11 +5,12 @@ require_once __DIR__ . '/i18n/I18nData.php';
 require_once __DIR__ . '/i18n/I18nFile.php';
 require_once __DIR__ . '/../constants.php';
 
-/** @var array<string,string> $options */
-$options = getopt("a:hk:l:o:rv:");
+/** @var array<string,string>|false $options */
+$options = getopt('a:hk:l:o:rv:');
 
-if (array_key_exists('h', $options)) {
+if (!is_array($options) || array_key_exists('h', $options)) {
 	manipulateHelp();
+	exit();
 }
 
 if (!array_key_exists('a', $options)) {

+ 0 - 1
tests/phpstan-next.txt

@@ -16,7 +16,6 @@
 ./app/Models/Search.php
 ./app/Models/Share.php
 ./app/views/helpers/logs_pagination.phtml
-./cli/check.translation.php
 ./lib/Minz/Error.php
 ./lib/Minz/Mailer.php
 ./lib/Minz/Migrator.php