Use match instead of switch

This commit is contained in:
Fabien Potencier
2023-12-09 15:10:06 +01:00
parent fed8dd102b
commit a42eba63c5
3 changed files with 48 additions and 106 deletions
+6 -10
View File
@@ -1054,16 +1054,12 @@ function twig_trim_filter($string, $characterMask = null, $side = 'both')
$characterMask = " \t\n\r\0\x0B"; $characterMask = " \t\n\r\0\x0B";
} }
switch ($side) { return match ($side) {
case 'both': 'both' => trim($string ?? '', $characterMask),
return trim($string ?? '', $characterMask); 'left' => ltrim($string ?? '', $characterMask),
case 'left': 'right' => rtrim($string ?? '', $characterMask),
return ltrim($string ?? '', $characterMask); default => throw new RuntimeError('Trimming side must be "left", "right" or "both".'),
case 'right': };
return rtrim($string ?? '', $characterMask);
default:
throw new RuntimeError('Trimming side must be "left", "right" or "both".');
}
} }
/** /**
+6 -13
View File
@@ -43,18 +43,11 @@ class FileExtensionEscapingStrategy
$extension = pathinfo($name, \PATHINFO_EXTENSION); $extension = pathinfo($name, \PATHINFO_EXTENSION);
switch ($extension) { return match ($extension) {
case 'js': 'js' => 'js',
return 'js'; 'css' => 'css',
'txt' => false,
case 'css': default => 'html',
return 'css'; };
case 'txt':
return false;
default:
return 'html';
}
} }
} }
+36 -83
View File
@@ -91,94 +91,47 @@ final class Token
public static function typeToString(int $type, bool $short = false): string public static function typeToString(int $type, bool $short = false): string
{ {
switch ($type) { $name = match ($type) {
case self::EOF_TYPE: self::EOF_TYPE => 'EOF_TYPE',
$name = 'EOF_TYPE'; self::TEXT_TYPE => 'TEXT_TYPE',
break; self::BLOCK_START_TYPE => 'BLOCK_START_TYPE',
case self::TEXT_TYPE: self::VAR_START_TYPE => 'VAR_START_TYPE',
$name = 'TEXT_TYPE'; self::BLOCK_END_TYPE => 'BLOCK_END_TYPE',
break; self::VAR_END_TYPE => 'VAR_END_TYPE',
case self::BLOCK_START_TYPE: self::NAME_TYPE => 'NAME_TYPE',
$name = 'BLOCK_START_TYPE'; self::NUMBER_TYPE => 'NUMBER_TYPE',
break; self::STRING_TYPE => 'STRING_TYPE',
case self::VAR_START_TYPE: self::OPERATOR_TYPE => 'OPERATOR_TYPE',
$name = 'VAR_START_TYPE'; self::PUNCTUATION_TYPE => 'PUNCTUATION_TYPE',
break; self::INTERPOLATION_START_TYPE => 'INTERPOLATION_START_TYPE',
case self::BLOCK_END_TYPE: self::INTERPOLATION_END_TYPE => 'INTERPOLATION_END_TYPE',
$name = 'BLOCK_END_TYPE'; self::ARROW_TYPE => 'ARROW_TYPE',
break; self::SPREAD_TYPE => 'SPREAD_TYPE',
case self::VAR_END_TYPE: default => throw new \LogicException(sprintf('Token of type "%s" does not exist.', $type)),
$name = 'VAR_END_TYPE'; };
break;
case self::NAME_TYPE:
$name = 'NAME_TYPE';
break;
case self::NUMBER_TYPE:
$name = 'NUMBER_TYPE';
break;
case self::STRING_TYPE:
$name = 'STRING_TYPE';
break;
case self::OPERATOR_TYPE:
$name = 'OPERATOR_TYPE';
break;
case self::PUNCTUATION_TYPE:
$name = 'PUNCTUATION_TYPE';
break;
case self::INTERPOLATION_START_TYPE:
$name = 'INTERPOLATION_START_TYPE';
break;
case self::INTERPOLATION_END_TYPE:
$name = 'INTERPOLATION_END_TYPE';
break;
case self::ARROW_TYPE:
$name = 'ARROW_TYPE';
break;
case self::SPREAD_TYPE:
$name = 'SPREAD_TYPE';
break;
default:
throw new \LogicException(sprintf('Token of type "%s" does not exist.', $type));
}
return $short ? $name : 'Twig\Token::'.$name; return $short ? $name : 'Twig\Token::'.$name;
} }
public static function typeToEnglish(int $type): string public static function typeToEnglish(int $type): string
{ {
switch ($type) { return match ($type) {
case self::EOF_TYPE: self::EOF_TYPE => 'end of template',
return 'end of template'; self::TEXT_TYPE => 'text',
case self::TEXT_TYPE: self::BLOCK_START_TYPE => 'begin of statement block',
return 'text'; self::VAR_START_TYPE => 'begin of print statement',
case self::BLOCK_START_TYPE: self::BLOCK_END_TYPE => 'end of statement block',
return 'begin of statement block'; self::VAR_END_TYPE => 'end of print statement',
case self::VAR_START_TYPE: self::NAME_TYPE => 'name',
return 'begin of print statement'; self::NUMBER_TYPE => 'number',
case self::BLOCK_END_TYPE: self::STRING_TYPE => 'string',
return 'end of statement block'; self::OPERATOR_TYPE => 'operator',
case self::VAR_END_TYPE: self::PUNCTUATION_TYPE => 'punctuation',
return 'end of print statement'; self::INTERPOLATION_START_TYPE => 'begin of string interpolation',
case self::NAME_TYPE: self::INTERPOLATION_END_TYPE => 'end of string interpolation',
return 'name'; self::ARROW_TYPE => 'arrow function',
case self::NUMBER_TYPE: self::SPREAD_TYPE => 'spread operator',
return 'number'; default => throw new \LogicException(sprintf('Token of type "%s" does not exist.', $type)),
case self::STRING_TYPE: };
return 'string';
case self::OPERATOR_TYPE:
return 'operator';
case self::PUNCTUATION_TYPE:
return 'punctuation';
case self::INTERPOLATION_START_TYPE:
return 'begin of string interpolation';
case self::INTERPOLATION_END_TYPE:
return 'end of string interpolation';
case self::ARROW_TYPE:
return 'arrow function';
case self::SPREAD_TYPE:
return 'spread operator';
default:
throw new \LogicException(sprintf('Token of type "%s" does not exist.', $type));
}
} }
} }