Skip to content

Commit 89d77b8

Browse files
Merge pull request #473 from kamil-tekiela/Use-match-instead-of-switch
Use match instead of switch
2 parents 8ed826c + 8a5a896 commit 89d77b8

File tree

1 file changed

+33
-96
lines changed

1 file changed

+33
-96
lines changed

src/Context.php

Lines changed: 33 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -631,102 +631,39 @@ public static function setMode($mode = self::SQL_MODE_NONE): void
631631
*/
632632
private static function getModeFromString(string $mode): int
633633
{
634-
// phpcs:disable SlevomatCodingStandard.Classes.DisallowLateStaticBindingForConstants.DisallowedLateStaticBindingForConstant
635-
switch ($mode) {
636-
case 'ALLOW_INVALID_DATES':
637-
return static::SQL_MODE_ALLOW_INVALID_DATES;
638-
639-
case 'ANSI_QUOTES':
640-
return static::SQL_MODE_ANSI_QUOTES;
641-
642-
case 'COMPAT_MYSQL':
643-
return static::SQL_MODE_COMPAT_MYSQL;
644-
645-
case 'ERROR_FOR_DIVISION_BY_ZERO':
646-
return static::SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO;
647-
648-
case 'HIGH_NOT_PRECEDENCE':
649-
return static::SQL_MODE_HIGH_NOT_PRECEDENCE;
650-
651-
case 'IGNORE_SPACE':
652-
return static::SQL_MODE_IGNORE_SPACE;
653-
654-
case 'NO_AUTO_CREATE_USER':
655-
return static::SQL_MODE_NO_AUTO_CREATE_USER;
656-
657-
case 'NO_AUTO_VALUE_ON_ZERO':
658-
return static::SQL_MODE_NO_AUTO_VALUE_ON_ZERO;
659-
660-
case 'NO_BACKSLASH_ESCAPES':
661-
return static::SQL_MODE_NO_BACKSLASH_ESCAPES;
662-
663-
case 'NO_DIR_IN_CREATE':
664-
return static::SQL_MODE_NO_DIR_IN_CREATE;
665-
666-
case 'NO_ENGINE_SUBSTITUTION':
667-
return static::SQL_MODE_NO_ENGINE_SUBSTITUTION;
668-
669-
case 'NO_FIELD_OPTIONS':
670-
return static::SQL_MODE_NO_FIELD_OPTIONS;
671-
672-
case 'NO_KEY_OPTIONS':
673-
return static::SQL_MODE_NO_KEY_OPTIONS;
674-
675-
case 'NO_TABLE_OPTIONS':
676-
return static::SQL_MODE_NO_TABLE_OPTIONS;
677-
678-
case 'NO_UNSIGNED_SUBTRACTION':
679-
return static::SQL_MODE_NO_UNSIGNED_SUBTRACTION;
680-
681-
case 'NO_ZERO_DATE':
682-
return static::SQL_MODE_NO_ZERO_DATE;
683-
684-
case 'NO_ZERO_IN_DATE':
685-
return static::SQL_MODE_NO_ZERO_IN_DATE;
686-
687-
case 'ONLY_FULL_GROUP_BY':
688-
return static::SQL_MODE_ONLY_FULL_GROUP_BY;
689-
690-
case 'PIPES_AS_CONCAT':
691-
return static::SQL_MODE_PIPES_AS_CONCAT;
692-
693-
case 'REAL_AS_FLOAT':
694-
return static::SQL_MODE_REAL_AS_FLOAT;
695-
696-
case 'STRICT_ALL_TABLES':
697-
return static::SQL_MODE_STRICT_ALL_TABLES;
698-
699-
case 'STRICT_TRANS_TABLES':
700-
return static::SQL_MODE_STRICT_TRANS_TABLES;
701-
702-
case 'NO_ENCLOSING_QUOTES':
703-
return static::SQL_MODE_NO_ENCLOSING_QUOTES;
704-
705-
case 'ANSI':
706-
return static::SQL_MODE_ANSI;
707-
708-
case 'DB2':
709-
return static::SQL_MODE_DB2;
710-
711-
case 'MAXDB':
712-
return static::SQL_MODE_MAXDB;
713-
714-
case 'MSSQL':
715-
return static::SQL_MODE_MSSQL;
716-
717-
case 'ORACLE':
718-
return static::SQL_MODE_ORACLE;
719-
720-
case 'POSTGRESQL':
721-
return static::SQL_MODE_POSTGRESQL;
722-
723-
case 'TRADITIONAL':
724-
return static::SQL_MODE_TRADITIONAL;
725-
726-
default:
727-
return self::SQL_MODE_NONE;
728-
}
729-
// phpcs:enable
634+
return match ($mode) {
635+
'ALLOW_INVALID_DATES' => self::SQL_MODE_ALLOW_INVALID_DATES,
636+
'ANSI_QUOTES' => self::SQL_MODE_ANSI_QUOTES,
637+
'COMPAT_MYSQL' => self::SQL_MODE_COMPAT_MYSQL,
638+
'ERROR_FOR_DIVISION_BY_ZERO' => self::SQL_MODE_ERROR_FOR_DIVISION_BY_ZERO,
639+
'HIGH_NOT_PRECEDENCE' => self::SQL_MODE_HIGH_NOT_PRECEDENCE,
640+
'IGNORE_SPACE' => self::SQL_MODE_IGNORE_SPACE,
641+
'NO_AUTO_CREATE_USER' => self::SQL_MODE_NO_AUTO_CREATE_USER,
642+
'NO_AUTO_VALUE_ON_ZERO' => self::SQL_MODE_NO_AUTO_VALUE_ON_ZERO,
643+
'NO_BACKSLASH_ESCAPES' => self::SQL_MODE_NO_BACKSLASH_ESCAPES,
644+
'NO_DIR_IN_CREATE' => self::SQL_MODE_NO_DIR_IN_CREATE,
645+
'NO_ENGINE_SUBSTITUTION' => self::SQL_MODE_NO_ENGINE_SUBSTITUTION,
646+
'NO_FIELD_OPTIONS' => self::SQL_MODE_NO_FIELD_OPTIONS,
647+
'NO_KEY_OPTIONS' => self::SQL_MODE_NO_KEY_OPTIONS,
648+
'NO_TABLE_OPTIONS' => self::SQL_MODE_NO_TABLE_OPTIONS,
649+
'NO_UNSIGNED_SUBTRACTION' => self::SQL_MODE_NO_UNSIGNED_SUBTRACTION,
650+
'NO_ZERO_DATE' => self::SQL_MODE_NO_ZERO_DATE,
651+
'NO_ZERO_IN_DATE' => self::SQL_MODE_NO_ZERO_IN_DATE,
652+
'ONLY_FULL_GROUP_BY' => self::SQL_MODE_ONLY_FULL_GROUP_BY,
653+
'PIPES_AS_CONCAT' => self::SQL_MODE_PIPES_AS_CONCAT,
654+
'REAL_AS_FLOAT' => self::SQL_MODE_REAL_AS_FLOAT,
655+
'STRICT_ALL_TABLES' => self::SQL_MODE_STRICT_ALL_TABLES,
656+
'STRICT_TRANS_TABLES' => self::SQL_MODE_STRICT_TRANS_TABLES,
657+
'NO_ENCLOSING_QUOTES' => self::SQL_MODE_NO_ENCLOSING_QUOTES,
658+
'ANSI' => self::SQL_MODE_ANSI,
659+
'DB2' => self::SQL_MODE_DB2,
660+
'MAXDB' => self::SQL_MODE_MAXDB,
661+
'MSSQL' => self::SQL_MODE_MSSQL,
662+
'ORACLE' => self::SQL_MODE_ORACLE,
663+
'POSTGRESQL' => self::SQL_MODE_POSTGRESQL,
664+
'TRADITIONAL' => self::SQL_MODE_TRADITIONAL,
665+
default => self::SQL_MODE_NONE,
666+
};
730667
}
731668

732669
/**

0 commit comments

Comments
 (0)