diff --git a/SlevomatCodingStandard/Helpers/SniffSettingsHelper.php b/SlevomatCodingStandard/Helpers/SniffSettingsHelper.php index f7eb2060f..d4d37f2ef 100644 --- a/SlevomatCodingStandard/Helpers/SniffSettingsHelper.php +++ b/SlevomatCodingStandard/Helpers/SniffSettingsHelper.php @@ -5,6 +5,15 @@ class SniffSettingsHelper { + /** + * @param string|int $settings + * @return int + */ + public static function normalizeInteger($settings): int + { + return (int) trim((string) $settings); + } + /** * @param mixed[] $settings * @return mixed[] diff --git a/SlevomatCodingStandard/Sniffs/TypeHints/DeclareStrictTypesSniff.php b/SlevomatCodingStandard/Sniffs/TypeHints/DeclareStrictTypesSniff.php index 98120cd89..56e9861e5 100644 --- a/SlevomatCodingStandard/Sniffs/TypeHints/DeclareStrictTypesSniff.php +++ b/SlevomatCodingStandard/Sniffs/TypeHints/DeclareStrictTypesSniff.php @@ -2,6 +2,7 @@ namespace SlevomatCodingStandard\Sniffs\TypeHints; +use SlevomatCodingStandard\Helpers\SniffSettingsHelper; use SlevomatCodingStandard\Helpers\TokenHelper; class DeclareStrictTypesSniff implements \PHP_CodeSniffer_Sniff @@ -98,7 +99,8 @@ public function process(\PHP_CodeSniffer_File $phpcsFile, $openTagPointer) } $strictTypesContent = TokenHelper::getContent($phpcsFile, $strictTypesPointer, $numberPointer); - $format = sprintf('strict_types%1$s=%1$s1', str_repeat(' ', $this->spacesCountAroundEqualsSign)); + $spacesCountAroundEqualsSign = SniffSettingsHelper::normalizeInteger($this->spacesCountAroundEqualsSign); + $format = sprintf('strict_types%1$s=%1$s1', str_repeat(' ', $spacesCountAroundEqualsSign)); if ($strictTypesContent !== $format) { $fix = $phpcsFile->addFixableError( sprintf( @@ -120,7 +122,7 @@ public function process(\PHP_CodeSniffer_File $phpcsFile, $openTagPointer) } $openingWhitespace = substr($tokens[$openTagPointer]['content'], strlen('newlinesCountBetweenOpenTagAndDeclare); + $newlinesCountBetweenOpenTagAndDeclare = SniffSettingsHelper::normalizeInteger($this->newlinesCountBetweenOpenTagAndDeclare); if ($newlinesCountBetweenOpenTagAndDeclare === 0) { if ($openingWhitespace !== ' ') { $fix = $phpcsFile->addFixableError( diff --git a/tests/Helpers/SniffSettingsHelperTest.php b/tests/Helpers/SniffSettingsHelperTest.php index 05836b065..97d2ae696 100644 --- a/tests/Helpers/SniffSettingsHelperTest.php +++ b/tests/Helpers/SniffSettingsHelperTest.php @@ -5,6 +5,13 @@ class SniffSettingsHelperTest extends \SlevomatCodingStandard\Helpers\TestCase { + public function testNormalizeInteger() + { + $this->assertSame(2, SniffSettingsHelper::normalizeInteger(2)); + $this->assertSame(2, SniffSettingsHelper::normalizeInteger('2')); + $this->assertSame(2, SniffSettingsHelper::normalizeInteger(' 2 ')); + } + public function testNormalizeArray() { $this->assertSame([