| Source for file MultiLineFunctionDeclarationSniff.phpDocumentation is available at MultiLineFunctionDeclarationSniff.php 
 * Ensure single and multi-line function declarations are defined correctly. * @author    Greg Sherwood <gsherwood@squiz.net> * @copyright 2006-2015 Squiz Pty Ltd (ABN 77 084 670 600) * @license   https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licencenamespace PHP_CodeSniffer\Standards\Squiz\Sniffs\Functions;use PHP_CodeSniffer\Standards\PEAR\Sniffs\Functions\FunctionDeclarationSniff as PEARFunctionDeclarationSniff;use PHP_CodeSniffer\Util\Tokens;class MultiLineFunctionDeclarationSniff extends PEARFunctionDeclarationSniff     * A list of tokenizers this sniff supports.    public $supportedTokenizers = array(     * Determine if this is a multi-line function declaration.     * @param \PHP_CodeSniffer\Files\File $phpcsFile   The file being scanned.     * @param int                         $stackPtr    The position of the current token     *                                                  in the stack passed in $tokens.     * @param int                         $openBracket The position of the opening bracket     *                                                  in the stack passed in $tokens.     * @param array                       $tokens      The stack of tokens that make up    public function isMultiLineDeclaration($phpcsFile, $stackPtr, $openBracket, $tokens)        $bracketsToCheck = array($stackPtr => $openBracket) ;        // Closures may use the USE keyword and so be multi-line in this way.        if ($tokens[$stackPtr]['code'] === T_CLOSURE) {            $use = $phpcsFile-> findNext( T_USE, ($tokens[$openBracket]['parenthesis_closer'] + 1), $tokens[$stackPtr]['scope_opener']) ;                    $bracketsToCheck[$use] = $open ;        foreach ($bracketsToCheck as $stackPtr => $openBracket) {            // If the first argument is on a new line, this is a multi-line            // function declaration, even if there is only one argument.            $next = $phpcsFile-> findNext( Tokens::$emptyTokens, ($openBracket + 1), null, true) ;            if ($tokens[$next]['line'] !== $tokens[$stackPtr]['line']) {            $closeBracket = $tokens[$openBracket]['parenthesis_closer'] ;            $end = $phpcsFile-> findEndOfStatement($openBracket + 1) ;            while ($tokens[$end]['code'] === T_COMMA) {                // If the next bit of code is not on the same line, this is a                // multi-line function declaration.                $next = $phpcsFile-> findNext( Tokens::$emptyTokens, ($end + 1), $closeBracket, true) ;                if ($tokens[$next]['line'] !== $tokens[$end]['line']) {                $end = $phpcsFile-> findEndOfStatement($next) ;            // We've reached the last argument, so see if the next content            // (should be the close bracket) is also on the same line.            $next = $phpcsFile-> findNext( Tokens::$emptyTokens, ($end + 1), $closeBracket, true) ;            if ($next !== false && $tokens[$next]['line'] !== $tokens[$end]['line']) {    }//end isMultiLineDeclaration()     * Processes multi-line declarations.     * @param \PHP_CodeSniffer\Files\File $phpcsFile The file being scanned.     * @param int                         $stackPtr  The position of the current token     *                                                in the stack passed in $tokens.     * @param array                       $tokens    The stack of tokens that make up    public function processMultiLineDeclaration($phpcsFile, $stackPtr, $tokens)        // We do everything the parent sniff does, and a bit more.        parent:: processMultiLineDeclaration($phpcsFile, $stackPtr, $tokens) ;        $openBracket = $tokens[$stackPtr]['parenthesis_opener'] ;        $this->processBracket($phpcsFile, $openBracket, $tokens, 'function') ;        if ($tokens[$stackPtr]['code'] !== T_CLOSURE) {        $use = $phpcsFile-> findNext( T_USE, ($tokens[$stackPtr]['parenthesis_closer'] + 1), $tokens[$stackPtr]['scope_opener']) ;        $this->processBracket($phpcsFile, $openBracket, $tokens, 'use') ;        if ($tokens[($use - 1)]['code'] === T_WHITESPACE) {            $gap = strlen($tokens[($use - 1)]['content']) ;    }//end processMultiLineDeclaration()     * Processes the contents of a single set of brackets.     * @param \PHP_CodeSniffer\Files\File $phpcsFile   The file being scanned.     * @param int                         $openBracket The position of the open bracket     *                                                  in the stack passed in $tokens.     * @param array                       $tokens      The stack of tokens that make up     * @param string                      $type        The type of the token the brackets     *                                                  belong to (function or use).    public function processBracket($phpcsFile, $openBracket, $tokens, $type ='function')        $closeBracket = $tokens[$openBracket]['parenthesis_closer'] ;        // The open bracket should be the last thing on the line.        if ($tokens[$openBracket]['line'] !== $tokens[$closeBracket]['line']) {            $next = $phpcsFile-> findNext( Tokens::$emptyTokens, ($openBracket + 1), null, true) ;            if ($tokens[$next]['line'] !== ($tokens[$openBracket]['line'] + 1)) {                $error = 'The first parameter of a multi-line ' .$type .' declaration must be on the line after the opening bracket' ;                $fix   = $phpcsFile-> addFixableError($error, $next, $errorPrefix .'FirstParamSpacing') ;                    $phpcsFile->fixer-> addNewline($openBracket) ;        // Each line between the brackets should contain a single parameter.        for ($i = ($openBracket + 1) ; $i < $closeBracket ; $i ++) {            // Skip brackets, like arrays, as they can contain commas.            if (isset($tokens[$i]['bracket_opener']) === true) {                $i = $tokens[$i]['bracket_closer'] ;            if (isset($tokens[$i]['parenthesis_opener']) === true) {                $i = $tokens[$i]['parenthesis_closer'] ;            if ($tokens[$i]['code'] !== T_COMMA) {            $next = $phpcsFile-> findNext( T_WHITESPACE, ($i + 1), null, true) ;            if ($tokens[$next]['line'] === $tokens[$i]['line']) {                $error = 'Multi-line ' .$type .' declarations must define one parameter per line' ;                $fix   = $phpcsFile-> addFixableError($error, $next, $errorPrefix .'OneParamPerLine') ;                    $phpcsFile->fixer-> addNewline($i) ;
		    
 
		    Documentation generated on Mon, 11 Mar 2019 15:27:38 -0400 by phpDocumentor 1.4.4 . PEAR Logo Copyright ©  PHP Group 2004.
	       |