'', 'removed' => '', 'alternative' => '', 'error' => false, ); $versionArray = $this->getVersionArray($itemArray); if (empty($versionArray) === false) { foreach ($versionArray as $version => $removed) { if ($this->supportsAbove($version) === true) { if ($removed === true && $errorInfo['removed'] === '') { $errorInfo['removed'] = $version; $errorInfo['error'] = true; } elseif ($errorInfo['deprecated'] === '') { $errorInfo['deprecated'] = $version; } } } } if (isset($itemArray['alternative']) === true) { $errorInfo['alternative'] = $itemArray['alternative']; } return $errorInfo; } /** * Get the error message template for suggesting an alternative for a specific sniff. * * @since 7.1.0 * * @return string */ protected function getAlternativeOptionTemplate() { return '; Use %s instead'; } /** * Generates the error or warning for this item. * * @since 7.1.0 * * @param \PHP_CodeSniffer_File $phpcsFile The file being scanned. * @param int $stackPtr The position of the relevant token in * the stack. * @param array $itemInfo Base information about the item. * @param array $errorInfo Array with detail (version) information * relevant to the item. * * @return void */ public function addError(File $phpcsFile, $stackPtr, array $itemInfo, array $errorInfo) { $itemName = $this->getItemName($itemInfo, $errorInfo); $error = $this->getErrorMsgTemplate(); $errorCode = $this->stringToErrorCode($itemName); $data = array($itemName); if ($errorInfo['deprecated'] !== '') { $error .= 'deprecated since PHP %s and '; $errorCode .= 'Deprecated'; $data[] = $errorInfo['deprecated']; } if ($errorInfo['removed'] !== '') { $error .= 'removed since PHP %s and '; $errorCode .= 'Removed'; $data[] = $errorInfo['removed']; } // Remove the last 'and' from the message. $error = substr($error, 0, (\strlen($error) - 5)); if ($errorInfo['alternative'] !== '') { $error .= $this->getAlternativeOptionTemplate(); $data[] = $errorInfo['alternative']; } $error = $this->filterErrorMsg($error, $itemInfo, $errorInfo); $data = $this->filterErrorData($data, $itemInfo, $errorInfo); $this->addMessage($phpcsFile, $error, $stackPtr, $errorInfo['error'], $errorCode, $data); } }