public function process_arbitrary_tstring( $stackPtr ) {
		$content = $this->tokens[ $stackPtr ]['content'];

		if ( ! isset( $this->discouraged_constants[ $content ] ) ) {
			return;
		}

		$next = $this->phpcsFile->findNext( Tokens::$emptyTokens, ( $stackPtr + 1 ), null, true );
		if ( false !== $next && \T_OPEN_PARENTHESIS === $this->tokens[ $next ]['code'] ) {
			// Function call or declaration.
			return;
		}

		$prev = $this->phpcsFile->findPrevious( Tokens::$emptyTokens, ( $stackPtr - 1 ), null, true );
		if ( false !== $prev && isset( $this->preceding_tokens_to_ignore[ $this->tokens[ $prev ]['code'] ] ) ) {
			// Not the use of a constant.
			return;
		}

		if ( $this->is_token_namespaced( $stackPtr ) === true ) {
			// Namespaced constant of the same name.
			return;
		}

		if ( false !== $prev
			&& \T_CONST === $this->tokens[ $prev ]['code']
			&& true === $this->is_class_constant( $prev )
		) {
			// Class constant of the same name.
			return;
		}

		/*
		 * Deal with a number of variations of use statements.
		 */
		for ( $i = $stackPtr; $i > 0; $i-- ) {
			if ( $this->tokens[ $i ]['line'] !== $this->tokens[ $stackPtr ]['line'] ) {
				break;
			}
		}

		$first_on_line = $this->phpcsFile->findNext( Tokens::$emptyTokens, ( $i + 1 ), null, true );
		if ( false !== $first_on_line && \T_USE === $this->tokens[ $first_on_line ]['code'] ) {
			$next_on_line = $this->phpcsFile->findNext( Tokens::$emptyTokens, ( $first_on_line + 1 ), null, true );
			if ( false !== $next_on_line ) {
				if ( ( \T_STRING === $this->tokens[ $next_on_line ]['code']
						&& 'const' === $this->tokens[ $next_on_line ]['content'] )
					|| \T_CONST === $this->tokens[ $next_on_line ]['code'] // Happens in some PHPCS versions.
				) {
					$has_ns_sep = $this->phpcsFile->findNext( \T_NS_SEPARATOR, ( $next_on_line + 1 ), $stackPtr );
					if ( false !== $has_ns_sep ) {
						// Namespaced const (group) use statement.
						return;
					}
				} else {
					// Not a const use statement.
					return;
				}
			}
		}

		// Ok, this is really one of the discouraged constants.
		$this->phpcsFile->addWarning(
			'Found usage of constant "%s". Use %s instead.',
			$stackPtr,
			$this->string_to_errorcode( $content . 'UsageFound' ),
			array(
				$content,
				$this->discouraged_constants[ $content ],
			)
		);
	}
public function process_arbitrary_tstring( $stackPtr ) {
		$content = $this->tokens[ $stackPtr ]['content'];

		if ( ! isset( $this->discouraged_constants[ $content ] ) ) {
			return;
		}

		$next = $this->phpcsFile->findNext( Tokens::$emptyTokens, ( $stackPtr + 1 ), null, true );
		if ( false !== $next && \T_OPEN_PARENTHESIS === $this->tokens[ $next ]['code'] ) {
			// Function call or declaration.
			return;
		}

		$prev = $this->phpcsFile->findPrevious( Tokens::$emptyTokens, ( $stackPtr - 1 ), null, true );
		if ( false !== $prev && isset( $this->preceding_tokens_to_ignore[ $this->tokens[ $prev ]['code'] ] ) ) {
			// Not the use of a constant.
			return;
		}

		if ( $this->is_token_namespaced( $stackPtr ) === true ) {
			// Namespaced constant of the same name.
			return;
		}

		if ( false !== $prev
			&& \T_CONST === $this->tokens[ $prev ]['code']
			&& true === $this->is_class_constant( $prev )
		) {
			// Class constant of the same name.
			return;
		}

		/*
		 * Deal with a number of variations of use statements.
		 */
		for ( $i = $stackPtr; $i > 0; $i-- ) {
			if ( $this->tokens[ $i ]['line'] !== $this->tokens[ $stackPtr ]['line'] ) {
				break;
			}
		}

		$first_on_line = $this->phpcsFile->findNext( Tokens::$emptyTokens, ( $i + 1 ), null, true );
		if ( false !== $first_on_line && \T_USE === $this->tokens[ $first_on_line ]['code'] ) {
			$next_on_line = $this->phpcsFile->findNext( Tokens::$emptyTokens, ( $first_on_line + 1 ), null, true );
			if ( false !== $next_on_line ) {
				if ( ( \T_STRING === $this->tokens[ $next_on_line ]['code']
						&& 'const' === $this->tokens[ $next_on_line ]['content'] )
					|| \T_CONST === $this->tokens[ $next_on_line ]['code'] // Happens in some PHPCS versions.
				) {
					$has_ns_sep = $this->phpcsFile->findNext( \T_NS_SEPARATOR, ( $next_on_line + 1 ), $stackPtr );
					if ( false !== $has_ns_sep ) {
						// Namespaced const (group) use statement.
						return;
					}
				} else {
					// Not a const use statement.
					return;
				}
			}
		}

		// Ok, this is really one of the discouraged constants.
		$this->phpcsFile->addWarning(
			'Found usage of constant "%s". Use %s instead.',
			$stackPtr,
			$this->string_to_errorcode( $content . 'UsageFound' ),
			array(
				$content,
				$this->discouraged_constants[ $content ],
			)
		);
	}
public function process_arbitrary_tstring ( $ stackPtr ) { $ content = $ this -> tokens [ $ stackPtr ] [ 'content' ] ; if ( ! isset ( $ this -> discouraged_constants [ $ content ] ) ) { return ; } $ next = $ this -> phpcsFile -> findNext ( Tokens :: $ emptyTokens , ( $ stackPtr + 1 ) , null , true ) ; if ( false !== $ next && \ T_OPEN_PARENTHESIS === $ this -> tokens [ $ next ] [ 'code' ] ) { // Function call or declaration. return ; } $ prev = $ this -> phpcsFile -> findPrevious ( Tokens :: $ emptyTokens , ( $ stackPtr - 1 ) , null , true ) ; if ( false !== $ prev && isset ( $ this -> preceding_tokens_to_ignore [ $ this -> tokens [ $ prev ] [ 'code' ] ] ) ) { // Not the use of a constant. return ; } if ( $ this -> is_token_namespaced ( $ stackPtr ) === true ) { // Namespaced constant of the same name. return ; } if ( false !== $ prev && \ T_CONST === $ this -> tokens [ $ prev ] [ 'code' ] && true === $ this -> is_class_constant ( $ prev ) ) { // Class constant of the same name. return ; } /*
		 * Deal with a number of variations of use statements.
		 */ for ( $ i = $ stackPtr ; $ i > 0 ; $ i -- ) { if ( $ this -> tokens [ $ i ] [ 'line' ] !== $ this -> tokens [ $ stackPtr ] [ 'line' ] ) { break ; } } $ first_on_line = $ this -> phpcsFile -> findNext ( Tokens :: $ emptyTokens , ( $ i + 1 ) , null , true ) ; if ( false !== $ first_on_line && \ T_USE === $ this -> tokens [ $ first_on_line ] [ 'code' ] ) { $ next_on_line = $ this -> phpcsFile -> findNext ( Tokens :: $ emptyTokens , ( $ first_on_line + 1 ) , null , true ) ; if ( false !== $ next_on_line ) { if ( ( \ T_STRING === $ this -> tokens [ $ next_on_line ] [ 'code' ] && 'const' === $ this -> tokens [ $ next_on_line ] [ 'content' ] ) || \ T_CONST === $ this -> tokens [ $ next_on_line ] [ 'code' ] // Happens in some PHPCS versions. ) { $ has_ns_sep = $ this -> phpcsFile -> findNext ( \ T_NS_SEPARATOR , ( $ next_on_line + 1 ) , $ stackPtr ) ; if ( false !== $ has_ns_sep ) { // Namespaced const (group) use statement. return ; } } else { // Not a const use statement. return ; } } } // Ok, this is really one of the discouraged constants. $ this -> phpcsFile -> addWarning ( 'Found usage of constant "%s". Use %s instead.' , $ stackPtr , $ this -> string_to_errorcode ( $ content . 'UsageFound' ) , array ( $ content , $ this -> discouraged_constants [ $ content ] , ) ) ; }
Process an arbitrary T_STRING token to determine whether it is one of the target constants.

@since 0.14.0

@param int $stackPtr The position of the current token in the stack.

@return void
Process an arbitrary T_STRING token to determine whether it is one of the target constants .