PATH:
opt
/
cpanel
/
ea-wappspector
/
vendor
/
slevomat
/
coding-standard
/
SlevomatCodingStandard
/
Sniffs
/
Namespaces
<?php declare(strict_types = 1); namespace SlevomatCodingStandard\Sniffs\Namespaces; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; use SlevomatCodingStandard\Helpers\FixerHelper; use SlevomatCodingStandard\Helpers\NamespaceHelper; use SlevomatCodingStandard\Helpers\StringHelper; use SlevomatCodingStandard\Helpers\TokenHelper; use SlevomatCodingStandard\Helpers\UseStatementHelper; use function sprintf; use function strlen; use function substr; use const T_AS; use const T_SEMICOLON; use const T_USE; class UseFromSameNamespaceSniff implements Sniff { public const CODE_USE_FROM_SAME_NAMESPACE = 'UseFromSameNamespace'; /** * @return array<int, (int|string)> */ public function register(): array { return [ T_USE, ]; } /** * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint * @param int $usePointer */ public function process(File $phpcsFile, $usePointer): void { if (!UseStatementHelper::isImportUse($phpcsFile, $usePointer)) { return; } $namespaceName = NamespaceHelper::findCurrentNamespaceName($phpcsFile, $usePointer); $namespaceName ??= ''; $usedTypeName = UseStatementHelper::getFullyQualifiedTypeNameFromUse($phpcsFile, $usePointer); if (!StringHelper::startsWith($usedTypeName, $namespaceName)) { return; } $asPointer = $this->findAsPointer($phpcsFile, $usePointer); if ($asPointer !== null) { return; } $usedTypeNameRest = substr($usedTypeName, strlen($namespaceName)); if (!NamespaceHelper::isFullyQualifiedName($usedTypeNameRest) && $namespaceName !== '') { return; } if (NamespaceHelper::hasNamespace($usedTypeNameRest)) { return; } $fix = $phpcsFile->addFixableError(sprintf( 'Use %s is from the same namespace – that is prohibited.', $usedTypeName, ), $usePointer, self::CODE_USE_FROM_SAME_NAMESPACE); if (!$fix) { return; } $endPointer = TokenHelper::findNext($phpcsFile, T_SEMICOLON, $usePointer) + 1; $phpcsFile->fixer->beginChangeset(); FixerHelper::removeBetweenIncluding($phpcsFile, $usePointer, $endPointer); $phpcsFile->fixer->endChangeset(); } private function findAsPointer(File $phpcsFile, int $startPointer): ?int { return TokenHelper::findNextLocal($phpcsFile, T_AS, $startPointer); } }
[-] UselessAliasSniff.php
[edit]
[-] RequireOneNamespaceInFileSniff.php
[edit]
[-] NamespaceDeclarationSniff.php
[edit]
[-] FullyQualifiedClassNameInAnnotationSniff.php
[edit]
[-] AbstractFullyQualifiedGlobalReference.php
[edit]
[-] UseOnlyWhitelistedNamespacesSniff.php
[edit]
[+]
..
[-] UseDoesNotStartWithBackslashSniff.php
[edit]
[-] MultipleUsesPerLineSniff.php
[edit]
[-] UseSpacingSniff.php
[edit]
[-] ReferenceUsedNamesOnlySniff.php
[edit]
[-] FullyQualifiedGlobalConstantsSniff.php
[edit]
[-] UseFromSameNamespaceSniff.php
[edit]
[-] NamespaceSpacingSniff.php
[edit]
[-] AlphabeticallySortedUsesSniff.php
[edit]
[-] UnusedUsesSniff.php
[edit]
[-] FullyQualifiedExceptionsSniff.php
[edit]
[-] FullyQualifiedGlobalFunctionsSniff.php
[edit]
[-] DisallowGroupUseSniff.php
[edit]