From 3148a614490c3af3295a2a9ab17f8b93ae47934b Mon Sep 17 00:00:00 2001 From: jrfnl Date: Tue, 18 Apr 2023 16:24:32 +0200 Subject: [PATCH] 4.0 | Zend.Debug.CodeAnalyzer: remove sniff I have the impression that the Zend Code Analyzer tool as stand-alone tool is no longer available. Please correct me if I'm wrong. I propose to remove the sniff which allowed for running that tool via PHPCS in PHPCS 4.0, along the same lines as was already done for external JS/CSS tools in commit ea52e7b48165edbcb96b10a0a5de04567e4d73f8. --- .../Zend/Sniffs/Debug/CodeAnalyzerSniff.php | 98 ------------------- .../Zend/Tests/Debug/CodeAnalyzerUnitTest.inc | 6 -- .../Zend/Tests/Debug/CodeAnalyzerUnitTest.php | 66 ------------- 3 files changed, 170 deletions(-) delete mode 100644 src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php delete mode 100644 src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.inc delete mode 100644 src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php diff --git a/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php b/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php deleted file mode 100644 index dfd10bb3bd..0000000000 --- a/src/Standards/Zend/Sniffs/Debug/CodeAnalyzerSniff.php +++ /dev/null @@ -1,98 +0,0 @@ - - * @author Greg Sherwood - * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Standards\Zend\Sniffs\Debug; - -use PHP_CodeSniffer\Sniffs\Sniff; -use PHP_CodeSniffer\Files\File; -use PHP_CodeSniffer\Config; -use PHP_CodeSniffer\Exceptions\RuntimeException; -use PHP_CodeSniffer\Util\Common; - -class CodeAnalyzerSniff implements Sniff -{ - - - /** - * Returns the token types that this sniff is interested in. - * - * @return int[] - */ - public function register() - { - return [T_OPEN_TAG]; - - }//end register() - - - /** - * Processes the tokens that this sniff is interested in. - * - * @param \PHP_CodeSniffer\Files\File $phpcsFile The file where the token was found. - * @param int $stackPtr The position in the stack where - * the token was found. - * - * @return int - * @throws \PHP_CodeSniffer\Exceptions\RuntimeException If ZendCodeAnalyzer could not be run. - */ - public function process(File $phpcsFile, $stackPtr) - { - $analyzerPath = Config::getExecutablePath('zend_ca'); - if ($analyzerPath === null) { - return ($phpcsFile->numTokens + 1); - } - - $fileName = $phpcsFile->getFilename(); - - // In the command, 2>&1 is important because the code analyzer sends its - // findings to stderr. $output normally contains only stdout, so using 2>&1 - // will pipe even stderr to stdout. - $cmd = Common::escapeshellcmd($analyzerPath).' '.escapeshellarg($fileName).' 2>&1'; - - // There is the possibility to pass "--ide" as an option to the analyzer. - // This would result in an output format which would be easier to parse. - // The problem here is that no cleartext error messages are returned; only - // error-code-labels. So for a start we go for cleartext output. - $exitCode = exec($cmd, $output, $retval); - - // Variable $exitCode is the last line of $output if no error occurs, on - // error it is numeric. Try to handle various error conditions and - // provide useful error reporting. - if (is_numeric($exitCode) === true && $exitCode > 0) { - if (is_array($output) === true) { - $msg = join('\n', $output); - } - - throw new RuntimeException("Failed invoking ZendCodeAnalyzer, exitcode was [$exitCode], retval was [$retval], output was [$msg]"); - } - - if (is_array($output) === true) { - foreach ($output as $finding) { - // The first two lines of analyzer output contain - // something like this: - // > Zend Code Analyzer 1.2.2 - // > Analyzing ... - // So skip these... - $res = preg_match('/^.+\(line ([0-9]+)\):(.+)$/', $finding, $regs); - if (empty($regs) === true || $res === false) { - continue; - } - - $phpcsFile->addWarningOnLine(trim($regs[2]), $regs[1], 'ExternalTool'); - } - } - - // Ignore the rest of the file. - return ($phpcsFile->numTokens + 1); - - }//end process() - - -}//end class diff --git a/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.inc b/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.inc deleted file mode 100644 index c8d0499dd4..0000000000 --- a/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.inc +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php b/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php deleted file mode 100644 index 9d90fb536d..0000000000 --- a/src/Standards/Zend/Tests/Debug/CodeAnalyzerUnitTest.php +++ /dev/null @@ -1,66 +0,0 @@ - - * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) - * @license https://github.com/PHPCSStandards/PHP_CodeSniffer/blob/master/licence.txt BSD Licence - */ - -namespace PHP_CodeSniffer\Standards\Zend\Tests\Debug; - -use PHP_CodeSniffer\Tests\Standards\AbstractSniffUnitTest; -use PHP_CodeSniffer\Config; - -class CodeAnalyzerUnitTest extends AbstractSniffUnitTest -{ - - - /** - * Should this test be skipped for some reason. - * - * @return bool - */ - protected function shouldSkipTest() - { - $analyzerPath = Config::getExecutablePath('zend_ca'); - if ($analyzerPath === null) { - return true; - } - - return false; - - }//end shouldSkipTest() - - - /** - * Returns the lines where errors should occur. - * - * The key of the array should represent the line number and the value - * should represent the number of errors that should occur on that line. - * - * @return array - */ - public function getErrorList() - { - return []; - - }//end getErrorList() - - - /** - * Returns the lines where warnings should occur. - * - * The key of the array should represent the line number and the value - * should represent the number of warnings that should occur on that line. - * - * @return array - */ - public function getWarningList() - { - return [2 => 1]; - - }//end getWarningList() - - -}//end class