code: public function process(File $phpcsFile, $stackPtr)
      {
          $className = $phpcsFile->getDeclarationName($stackPtr);
  
          if (substr($className, -9) !== 'Interface') {
              $phpcsFile->addError('Interface name "%s" must be suffixed with "Interface"', $stackPtr, static::ERROR_CODE, '', [$className]);
          }
      }
docs: Called when one of the token types that this sniff is listening for
  is found.
  
  The stackPtr variable indicates where in the stack the token was found.
  A sniff can acquire information this token, along with all the other
  tokens within the stack by first acquiring the token stack:
  
  <code>
  $tokens = $phpcsFile->getTokens();
  echo 'Encountered a '.$tokens[$stackPtr]['type'].' token';
  echo 'token information: ';
  print_r($tokens[$stackPtr]);
  </code>
  
  If the sniff discovers an anomaly in the code, they can raise an error
  by calling addError() on the PHP_CodeSniffer_File object, specifying an error
  message and the position of the offending token:
  
  <code>
  $phpcsFile->addError('Encountered an error', $stackPtr);
  </code>
  
  @param File $phpcsFile The PHP_CodeSniffer file where the
  token was found.
  @param int $stackPtr The position in the PHP_CodeSniffer
  file's token stack where the token
  was found.
  
  @return void|int Optionally returns a stack pointer. The sniff will not be
  called again on the current file until the returned stack
  pointer is reached. Return (count($tokens) + 1) to skip
  the rest of the file.