Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/cakephp/cakephp-codesniffer/CakePHP/Sniffs/Formatting/BlankLineBeforeReturnSniff.php
<?php
namespace CakePHP\Sniffs\Formatting;

use
PHP_CodeSniffer\Files\File;
use
PHP_CodeSniffer\Sniffs\Sniff;

/**
 * Throws errors if there's no blank line before return statements.
 *
 * @author   Authors <Symfony2-coding-standard@escapestudios.github.com>
 * @license  http://spdx.org/licenses/MIT MIT License
 * @link     https://github.com/escapestudios/Symfony2-coding-standard
 */
class BlankLineBeforeReturnSniff implements Sniff
{
   
/**
     * A list of tokenizers this sniff supports.
     *
     * @var array
     */
   
public $supportedTokenizers = [
       
'PHP',
       
'JS',
    ];

   
/**
     * {@inheritDoc}
     */
   
public function register()
    {
        return [
T_RETURN];
    }

   
/**
     * {@inheritDoc}
     */
   
public function process(File $phpcsFile, $stackPtr)
    {
       
$tokens = $phpcsFile->getTokens();
       
$current = $stackPtr;
       
$previousLine = $tokens[$stackPtr]['line'] - 1;
       
$prevLineTokens = [];

        while (
$current >= 0 && $tokens[$current]['line'] >= $previousLine) {
            if (
               
$tokens[$current]['line'] == $previousLine
               
&& $tokens[$current]['type'] !== 'T_WHITESPACE'
               
&& $tokens[$current]['type'] !== 'T_COMMENT'
               
&& $tokens[$current]['type'] !== 'T_DOC_COMMENT_OPEN_TAG'
               
&& $tokens[$current]['type'] !== 'T_DOC_COMMENT_TAG'
               
&& $tokens[$current]['type'] !== 'T_DOC_COMMENT_STRING'
               
&& $tokens[$current]['type'] !== 'T_DOC_COMMENT_CLOSE_TAG'
               
&& $tokens[$current]['type'] !== 'T_DOC_COMMENT_WHITESPACE'
           
) {
               
$prevLineTokens[] = $tokens[$current]['type'];
            }
           
$current--;
        }

        if (
            isset(
$prevLineTokens[0])
            && (
$prevLineTokens[0] === 'T_OPEN_CURLY_BRACKET'
               
|| $prevLineTokens[0] === 'T_COLON'
               
|| $prevLineTokens[0] === 'T_OPEN_TAG')
        ) {
            return;
        } elseif (
count($prevLineTokens) > 0) {
           
$fix = $phpcsFile->addFixableError(
               
'Missing blank line before return statement',
               
$stackPtr,
               
'BlankLineBeforeReturn'
           
);
            if (
$fix === true) {
               
$phpcsFile->fixer->beginChangeset();
               
$phpcsFile->fixer->addNewlineBefore($stackPtr - 1);
               
$phpcsFile->fixer->endChangeset();
            }
        }
    }
}