Skip to content

Commit 4612aa3

Browse files
committed
Auto-fix short echo syntax
1 parent 255e029 commit 4612aa3

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

Magento2/Sniffs/PHP/ShortEchoSyntaxSniff.php

+20-1
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,30 @@ public function process(File $phpcsFile, $stackPtr)
3737

3838
$nextToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($stackPtr + 1), null, true);
3939
if ($tokens[$nextToken]['code'] == T_ECHO) {
40-
$phpcsFile->addWarning(
40+
$fix = $phpcsFile->addFixableWarning(
4141
'Short echo tag syntax must be used; expected "<?=" but found "<?php echo"',
4242
$stackPtr,
4343
'ShortEchoTag'
4444
);
45+
46+
if ($fix) {
47+
$phpcsFile->fixer->beginChangeset();
48+
49+
if (($nextToken - $stackPtr) === 1) {
50+
$phpcsFile->fixer->replaceToken($stackPtr, '<?=');
51+
} else {
52+
$phpcsFile->fixer->replaceToken($stackPtr, '<?= ');
53+
}
54+
55+
for ($i = $stackPtr + 1; $i < $nextToken; $i++) {
56+
if ($tokens[$i]['code'] === T_WHITESPACE) {
57+
$phpcsFile->fixer->replaceToken($i, '');
58+
}
59+
}
60+
61+
$phpcsFile->fixer->replaceToken($nextToken, '');
62+
$phpcsFile->fixer->endChangeset();
63+
}
4564
}
4665
}
4766
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?= "foo" ?>
2+
3+
<?php $foo = bar; ?>
4+
5+
<?= "foo" ?>
6+
7+
<?= /* @noEscape */ 'baz'; ?>

0 commit comments

Comments
 (0)