Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. RequireOneNamespaceInFileSniff.php

class RequireOneNamespaceInFileSniff

Hierarchy

  • class \SlevomatCodingStandard\Sniffs\Namespaces\RequireOneNamespaceInFileSniff implements \PHP_CodeSniffer\Sniffs\Sniff

Expanded class hierarchy of RequireOneNamespaceInFileSniff

File

vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Namespaces/RequireOneNamespaceInFileSniff.php, line 11

Namespace

SlevomatCodingStandard\Sniffs\Namespaces
View source
class RequireOneNamespaceInFileSniff implements Sniff {
    public const CODE_MORE_NAMESPACES_IN_FILE = 'MoreNamespacesInFile';
    
    /**
     * @return array<int, (int|string)>
     */
    public function register() : array {
        return [
            T_NAMESPACE,
        ];
    }
    
    /**
     * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
     * @param int $namespacePointer
     */
    public function process(File $phpcsFile, $namespacePointer) : void {
        $tokens = $phpcsFile->getTokens();
        $pointerAfterNamespace = TokenHelper::findNextEffective($phpcsFile, $namespacePointer + 1);
        if ($tokens[$pointerAfterNamespace]['code'] === T_NS_SEPARATOR) {
            return;
        }
        $previousNamespacePointer = $namespacePointer;
        do {
            $previousNamespacePointer = TokenHelper::findPrevious($phpcsFile, T_NAMESPACE, $previousNamespacePointer - 1);
            if ($previousNamespacePointer === null) {
                return;
            }
            $pointerAfterPreviousNamespace = TokenHelper::findNextEffective($phpcsFile, $previousNamespacePointer + 1);
            if ($tokens[$pointerAfterPreviousNamespace]['code'] === T_NS_SEPARATOR) {
                continue;
            }
            break;
        } while (true);
        $phpcsFile->addError('Only one namespace in a file is allowed.', $namespacePointer, self::CODE_MORE_NAMESPACES_IN_FILE);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
RequireOneNamespaceInFileSniff::CODE_MORE_NAMESPACES_IN_FILE public constant
RequireOneNamespaceInFileSniff::process public function * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint
*
Overrides Sniff::process
RequireOneNamespaceInFileSniff::register public function * Overrides Sniff::register

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal