private function validate_prefixes() {
		if ( $this->previous_prefixes === $this->prefixes ) {
			return;
		}

		// Set the cache *before* validation so as to not break the above compare.
		$this->previous_prefixes = $this->prefixes;

		// Validate the passed prefix(es).
		$prefixes    = array();
		$ns_prefixes = array();
		foreach ( $this->prefixes as $key => $prefix ) {
			$prefixLC = strtolower( $prefix );

			if ( isset( $this->prefix_blacklist[ $prefixLC ] ) ) {
				$this->phpcsFile->addError(
					'The "%s" prefix is not allowed.',
					0,
					'ForbiddenPrefixPassed',
					array( $prefix )
				);
				continue;
			}

			// Validate the prefix against characters allowed for function, class, constant names etc.
			if ( preg_match( '`^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\\\\]*$`', $prefix ) !== 1 ) {
				$this->phpcsFile->addWarning(
					'The "%s" prefix is not a valid namespace/function/class/variable/constant prefix in PHP.',
					0,
					'InvalidPrefixPassed',
					array( $prefix )
				);
			}

			// Lowercase the prefix to allow for direct compare.
			$prefixes[ $key ] = $prefixLC;

			/*
			 * Replace non-word characters in the prefix with a regex snippet, but only if the
			 * string doesn't already contain namespace separators.
			 */
			$is_regex = false;
			if ( strpos( $prefix, '\\' ) === false && preg_match( '`[_\W]`', $prefix ) > 0 ) {
				$prefix   = preg_replace( '`([_\W])`', '[\\\\\\\\$1]', $prefixLC );
				$is_regex = true;
			}

			$ns_prefixes[ $prefixLC ] = array(
				'prefix'   => $prefix,
				'is_regex' => $is_regex,
			);
		}

		// Set the validated prefixes caches.
		$this->validated_prefixes           = $prefixes;
		$this->validated_namespace_prefixes = $ns_prefixes;
	}
private function validate_prefixes() {
		if ( $this->previous_prefixes === $this->prefixes ) {
			return;
		}

		// Set the cache *before* validation so as to not break the above compare.
		$this->previous_prefixes = $this->prefixes;

		// Validate the passed prefix(es).
		$prefixes    = array();
		$ns_prefixes = array();
		foreach ( $this->prefixes as $key => $prefix ) {
			$prefixLC = strtolower( $prefix );

			if ( isset( $this->prefix_blacklist[ $prefixLC ] ) ) {
				$this->phpcsFile->addError(
					'The "%s" prefix is not allowed.',
					0,
					'ForbiddenPrefixPassed',
					array( $prefix )
				);
				continue;
			}

			// Validate the prefix against characters allowed for function, class, constant names etc.
			if ( preg_match( '`^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\\\\]*$`', $prefix ) !== 1 ) {
				$this->phpcsFile->addWarning(
					'The "%s" prefix is not a valid namespace/function/class/variable/constant prefix in PHP.',
					0,
					'InvalidPrefixPassed',
					array( $prefix )
				);
			}

			// Lowercase the prefix to allow for direct compare.
			$prefixes[ $key ] = $prefixLC;

			/*
			 * Replace non-word characters in the prefix with a regex snippet, but only if the
			 * string doesn't already contain namespace separators.
			 */
			$is_regex = false;
			if ( strpos( $prefix, '\\' ) === false && preg_match( '`[_\W]`', $prefix ) > 0 ) {
				$prefix   = preg_replace( '`([_\W])`', '[\\\\\\\\$1]', $prefixLC );
				$is_regex = true;
			}

			$ns_prefixes[ $prefixLC ] = array(
				'prefix'   => $prefix,
				'is_regex' => $is_regex,
			);
		}

		// Set the validated prefixes caches.
		$this->validated_prefixes           = $prefixes;
		$this->validated_namespace_prefixes = $ns_prefixes;
	}
private function validate_prefixes ( ) { if ( $ this -> previous_prefixes === $ this -> prefixes ) { return ; } // Set the cache *before* validation so as to not break the above compare. $ this -> previous_prefixes = $ this -> prefixes ; // Validate the passed prefix(es). $ prefixes = array ( ) ; $ ns_prefixes = array ( ) ; foreach ( $ this -> prefixes as $ key => $ prefix ) { $ prefixLC = strtolower ( $ prefix ) ; if ( isset ( $ this -> prefix_blacklist [ $ prefixLC ] ) ) { $ this -> phpcsFile -> addError ( 'The "%s" prefix is not allowed.' , 0 , 'ForbiddenPrefixPassed' , array ( $ prefix ) ) ; continue ; } // Validate the prefix against characters allowed for function, class, constant names etc. if ( preg_match ( '`^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff\\\\]*$`' , $ prefix ) !== 1 ) { $ this -> phpcsFile -> addWarning ( 'The "%s" prefix is not a valid namespace/function/class/variable/constant prefix in PHP.' , 0 , 'InvalidPrefixPassed' , array ( $ prefix ) ) ; } // Lowercase the prefix to allow for direct compare. $ prefixes [ $ key ] = $ prefixLC ; /*
			 * Replace non-word characters in the prefix with a regex snippet, but only if the
			 * string doesn't already contain namespace separators.
			 */ $ is_regex = false ; if ( strpos ( $ prefix , '\\' ) === false && preg_match ( '`[_\W]`' , $ prefix ) > 0 ) { $ prefix = preg_replace ( '`([_\W])`' , '[\\\\\\\\$1]' , $ prefixLC ) ; $ is_regex = true ; } $ ns_prefixes [ $ prefixLC ] = array ( 'prefix' => $ prefix , 'is_regex' => $ is_regex , ) ; } // Set the validated prefixes caches. $ this -> validated_prefixes = $ prefixes ; $ this -> validated_namespace_prefixes = $ ns_prefixes ; }
Validate an array of prefixes as passed through a custom property or via the command line.

Checks that the prefix:
- is not one of the blacklisted ones.
- complies with the PHP rules for valid function, class, variable, constant names.

@since 0.12.0
Validate an array of prefixes as passed through a custom property or via the command line .