public function determine_namespace( $stackPtr ) {

		// Check for the existence of the token.
		if ( ! isset( $this->tokens[ $stackPtr ] ) ) {
			return '';
		}

		// Check for scoped namespace {}.
		if ( ! empty( $this->tokens[ $stackPtr ]['conditions'] ) ) {
			$namespacePtr = $this->phpcsFile->getCondition( $stackPtr, \T_NAMESPACE );
			if ( false !== $namespacePtr ) {
				$namespace = $this->get_declared_namespace_name( $namespacePtr );
				if ( false !== $namespace ) {
					return $namespace;
				}

				// We are in a scoped namespace, but couldn't determine the name.
				// Searching for a global namespace is futile.
				return '';
			}
		}

		/*
		 * Not in a scoped namespace, so let's see if we can find a non-scoped namespace instead.
		 * Keeping in mind that:
		 * - there can be multiple non-scoped namespaces in a file (bad practice, but it happens).
		 * - the namespace keyword can also be used as part of a function/method call and such.
		 * - that a non-named namespace resolves to the global namespace.
		 */
		$previousNSToken = $stackPtr;
		$namespace       = false;
		do {
			$previousNSToken = $this->phpcsFile->findPrevious( \T_NAMESPACE, ( $previousNSToken - 1 ) );

			// Stop if we encounter a scoped namespace declaration as we already know we're not in one.
			if ( ! empty( $this->tokens[ $previousNSToken ]['scope_condition'] )
				&& $this->tokens[ $previousNSToken ]['scope_condition'] === $previousNSToken
			) {
				break;
			}

			$namespace = $this->get_declared_namespace_name( $previousNSToken );

		} while ( false === $namespace && false !== $previousNSToken );

		// If we still haven't got a namespace, return an empty string.
		if ( false === $namespace ) {
			return '';
		}

		return $namespace;
	}
public function determine_namespace( $stackPtr ) {

		// Check for the existence of the token.
		if ( ! isset( $this->tokens[ $stackPtr ] ) ) {
			return '';
		}

		// Check for scoped namespace {}.
		if ( ! empty( $this->tokens[ $stackPtr ]['conditions'] ) ) {
			$namespacePtr = $this->phpcsFile->getCondition( $stackPtr, \T_NAMESPACE );
			if ( false !== $namespacePtr ) {
				$namespace = $this->get_declared_namespace_name( $namespacePtr );
				if ( false !== $namespace ) {
					return $namespace;
				}

				// We are in a scoped namespace, but couldn't determine the name.
				// Searching for a global namespace is futile.
				return '';
			}
		}

		/*
		 * Not in a scoped namespace, so let's see if we can find a non-scoped namespace instead.
		 * Keeping in mind that:
		 * - there can be multiple non-scoped namespaces in a file (bad practice, but it happens).
		 * - the namespace keyword can also be used as part of a function/method call and such.
		 * - that a non-named namespace resolves to the global namespace.
		 */
		$previousNSToken = $stackPtr;
		$namespace       = false;
		do {
			$previousNSToken = $this->phpcsFile->findPrevious( \T_NAMESPACE, ( $previousNSToken - 1 ) );

			// Stop if we encounter a scoped namespace declaration as we already know we're not in one.
			if ( ! empty( $this->tokens[ $previousNSToken ]['scope_condition'] )
				&& $this->tokens[ $previousNSToken ]['scope_condition'] === $previousNSToken
			) {
				break;
			}

			$namespace = $this->get_declared_namespace_name( $previousNSToken );

		} while ( false === $namespace && false !== $previousNSToken );

		// If we still haven't got a namespace, return an empty string.
		if ( false === $namespace ) {
			return '';
		}

		return $namespace;
	}
public function determine_namespace ( $ stackPtr ) { // Check for the existence of the token. if ( ! isset ( $ this -> tokens [ $ stackPtr ] ) ) { return '' ; } // Check for scoped namespace {}. if ( ! empty ( $ this -> tokens [ $ stackPtr ] [ 'conditions' ] ) ) { $ namespacePtr = $ this -> phpcsFile -> getCondition ( $ stackPtr , \ T_NAMESPACE ) ; if ( false !== $ namespacePtr ) { $ namespace = $ this -> get_declared_namespace_name ( $ namespacePtr ) ; if ( false !== $ namespace ) { return $ namespace ; } // We are in a scoped namespace, but couldn't determine the name. // Searching for a global namespace is futile. return '' ; } } /*
		 * Not in a scoped namespace, so let's see if we can find a non-scoped namespace instead.
		 * Keeping in mind that:
		 * - there can be multiple non-scoped namespaces in a file (bad practice, but it happens).
		 * - the namespace keyword can also be used as part of a function/method call and such.
		 * - that a non-named namespace resolves to the global namespace.
		 */ $ previousNSToken = $ stackPtr ; $ namespace = false ; do { $ previousNSToken = $ this -> phpcsFile -> findPrevious ( \ T_NAMESPACE , ( $ previousNSToken - 1 ) ) ; // Stop if we encounter a scoped namespace declaration as we already know we're not in one. if ( ! empty ( $ this -> tokens [ $ previousNSToken ] [ 'scope_condition' ] ) && $ this -> tokens [ $ previousNSToken ] [ 'scope_condition' ] === $ previousNSToken ) { break ; } $ namespace = $ this -> get_declared_namespace_name ( $ previousNSToken ) ; } while ( false === $ namespace && false !== $ previousNSToken ) ; // If we still haven't got a namespace, return an empty string. if ( false === $ namespace ) { return '' ; } return $ namespace ; }
Determine the namespace name an arbitrary token lives in.

@since 0.10.0
@since 0.12.0 Moved from the `AbstractClassRestrictionsSniff` to this class.

@param int $stackPtr The token position for which to determine the namespace.

@return string Namespace name or empty string if it couldn't be determined or no namespace applies.
Determine the namespace name an arbitrary token lives in .