diff --git a/phpcs-sniffs/Formidable/Sniffs/CodeAnalysis/PreferFrmAppHelperSniff.php b/phpcs-sniffs/Formidable/Sniffs/CodeAnalysis/PreferFrmAppHelperSniff.php new file mode 100644 index 0000000000..d8f5dc9bfa --- /dev/null +++ b/phpcs-sniffs/Formidable/Sniffs/CodeAnalysis/PreferFrmAppHelperSniff.php @@ -0,0 +1,89 @@ +getTokens(); + + // Check if this is FrmProAppHelper::. + $prevToken = $phpcsFile->findPrevious( T_WHITESPACE, $stackPtr - 1, null, true ); + + if ( false === $prevToken || $tokens[ $prevToken ]['code'] !== T_STRING ) { + return; + } + + if ( $tokens[ $prevToken ]['content'] !== 'FrmProAppHelper' ) { + return; + } + + // Check the method name after ::. + $methodToken = $phpcsFile->findNext( T_WHITESPACE, $stackPtr + 1, null, true ); + + if ( false === $methodToken || $tokens[ $methodToken ]['code'] !== T_STRING ) { + return; + } + + $methodName = $tokens[ $methodToken ]['content']; + + if ( ! in_array( $methodName, $this->methods, true ) ) { + return; + } + + $fix = $phpcsFile->addFixableError( + 'Use FrmAppHelper::%s instead of FrmProAppHelper::%s to avoid wrapper overhead.', + $prevToken, + 'UseAppHelper', + array( $methodName, $methodName ) + ); + + if ( $fix ) { + $phpcsFile->fixer->beginChangeset(); + $phpcsFile->fixer->replaceToken( $prevToken, 'FrmAppHelper' ); + $phpcsFile->fixer->endChangeset(); + } + } +} diff --git a/phpcs-sniffs/Formidable/ruleset.xml b/phpcs-sniffs/Formidable/ruleset.xml index 8fb43e899b..c04a5e84da 100644 --- a/phpcs-sniffs/Formidable/ruleset.xml +++ b/phpcs-sniffs/Formidable/ruleset.xml @@ -30,21 +30,22 @@ - + - + +