Skip to content

Commit 278cc68

Browse files
committed
Do not juggle with stripping _. Just don't use it for prefixing. We have better ways of defining property visibility nowadays.
1 parent 641462e commit 278cc68

File tree

2 files changed

+19
-54
lines changed

2 files changed

+19
-54
lines changed

src/Cdn77/Sniffs/NamingConventions/ValidVariableNameSniff.php

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,12 @@
66

77
use PHP_CodeSniffer\Files\File;
88
use PHP_CodeSniffer\Sniffs\AbstractVariableSniff;
9-
use PHP_CodeSniffer\Util\Tokens;
109

1110
use function assert;
1211
use function ltrim;
1312
use function preg_match;
1413
use function preg_match_all;
1514
use function sprintf;
16-
use function strpos;
17-
use function substr;
18-
use function ucfirst;
1915

2016
use const T_DOUBLE_COLON;
2117
use const T_NULLSAFE_OBJECT_OPERATOR;
@@ -63,17 +59,9 @@ protected function processVariable(File $phpcsFile, $stackPtr): void
6359
if ($tokens[$bracket]['code'] !== T_OPEN_PARENTHESIS) {
6460
$objVarName = $tokens[$var]['content'];
6561

66-
// There is no way for us to know if the var is public or
67-
// private, so we have to ignore a leading underscore if there is
68-
// one and just check the main part of the variable name.
69-
$originalVarName = $objVarName;
70-
if (strpos($objVarName, '_') === 0) {
71-
$objVarName = substr($objVarName, 1);
72-
}
73-
7462
if (! $this->matchesRegex($objVarName)) {
7563
$error = 'Member variable "%s" is not in valid camel caps format';
76-
$data = [$originalVarName];
64+
$data = [$objVarName];
7765
$phpcsFile->addError($error, $var, 'MemberNotCamelCaps', $data);
7866
}
7967
}
@@ -82,14 +70,7 @@ protected function processVariable(File $phpcsFile, $stackPtr): void
8270

8371
$objOperator = $phpcsFile->findPrevious(T_WHITESPACE, $stackPtr - 1, null, true);
8472
if ($tokens[$objOperator]['code'] === T_DOUBLE_COLON) {
85-
// The variable lives within a class, and is referenced like
86-
// this: MyClass::$_variable, so we don't know its scope.
87-
$objVarName = $varName;
88-
if (strpos($objVarName, '_') === 0) {
89-
$objVarName = substr($objVarName, 1);
90-
}
91-
92-
if (! $this->matchesRegex($objVarName)) {
73+
if (! $this->matchesRegex($varName)) {
9374
$error = 'Member variable "%s" is not in valid camel caps format';
9475
$data = [$tokens[$stackPtr]['content']];
9576
$phpcsFile->addError($error, $stackPtr, 'MemberNotCamelCaps', $data);
@@ -98,23 +79,12 @@ protected function processVariable(File $phpcsFile, $stackPtr): void
9879
return;
9980
}
10081

101-
// There is no way for us to know if the var is public or private,
102-
// so we have to ignore a leading underscore if there is one and just
103-
// check the main part of the variable name.
104-
$originalVarName = $varName;
105-
if (strpos($varName, '_') === 0) {
106-
$inClass = $phpcsFile->hasCondition($stackPtr, Tokens::$ooScopeTokens);
107-
if ($inClass === true) {
108-
$varName = substr($varName, 1);
109-
}
110-
}
111-
11282
if ($this->matchesRegex($varName)) {
11383
return;
11484
}
11585

11686
$error = 'Variable "%s" is not in valid camel caps format';
117-
$data = [$originalVarName];
87+
$data = [$varName];
11888
$phpcsFile->addError($error, $stackPtr, 'NotCamelCaps', $data);
11989
}
12090

@@ -141,21 +111,8 @@ protected function processMemberVar(File $phpcsFile, $stackPtr): void
141111
return;
142112
}
143113

144-
$public = ($memberProps['scope'] !== 'private');
145114
$errorData = [$varName];
146115

147-
if (($public === true) && strpos($varName, '_') === 0) {
148-
$error = '%s member variable "%s" must not contain a leading underscore';
149-
$data = [
150-
ucfirst($memberProps['scope']),
151-
$errorData[0],
152-
];
153-
$phpcsFile->addError($error, $stackPtr, 'PublicHasUnderscore', $data);
154-
}
155-
156-
// Remove a potential underscore prefix for testing CamelCaps.
157-
$varName = ltrim($varName, '_');
158-
159116
if ($this->matchesRegex($varName)) {
160117
return;
161118
}

tests/Sniffs/NamingConventions/ValidVariableNameSniffTest.php

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ public function testErrors(): void
2727
3 => self::CODE_NOT_CAMEL_CAPS,
2828
5 => self::CODE_NOT_CAMEL_CAPS,
2929
10 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
30-
12 => self::CODE_PUBLIC_HAS_UNDERSCORE,
30+
12 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
3131
15 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
32-
17 => self::CODE_PUBLIC_HAS_UNDERSCORE,
32+
17 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
3333
20 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
34-
22 => self::CODE_PUBLIC_HAS_UNDERSCORE,
34+
22 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
35+
24 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
3536
25 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
37+
26 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
3638
31 => self::CODE_NOT_CAMEL_CAPS,
3739
33 => self::CODE_NOT_CAMEL_CAPS,
3840
36 => self::CODE_STRING_NOT_CAMEL_CAPS,
@@ -41,19 +43,25 @@ public function testErrors(): void
4143
42 => self::CODE_NOT_CAMEL_CAPS,
4244
44 => self::CODE_NOT_CAMEL_CAPS,
4345
53 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
46+
55 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
4447
58 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
48+
60 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
4549
62 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
4650
63 => self::CODE_NOT_CAMEL_CAPS,
4751
64 => self::CODE_NOT_CAMEL_CAPS,
4852
67 => self::CODE_NOT_CAMEL_CAPS,
4953
81 => self::CODE_STRING_NOT_CAMEL_CAPS,
50-
106 => self::CODE_PUBLIC_HAS_UNDERSCORE,
51-
107 => self::CODE_PUBLIC_HAS_UNDERSCORE,
52-
108 => self::CODE_PUBLIC_HAS_UNDERSCORE,
53-
123 => self::CODE_PUBLIC_HAS_UNDERSCORE,
54+
106 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
55+
107 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
56+
108 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
57+
123 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
58+
124 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
59+
134 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
5460
138 => self::CODE_NOT_CAMEL_CAPS,
61+
140 => self::CODE_NOT_CAMEL_CAPS,
5562
141 => self::CODE_NOT_CAMEL_CAPS,
5663
146 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
64+
148 => self::CODE_MEMBER_NOT_CAMEL_CAPS,
5765
150 => [self::CODE_NOT_CAMEL_CAPS, self::CODE_NOT_CAMEL_CAPS],
5866
152 => self::CODE_NOT_CAMEL_CAPS,
5967
];
@@ -73,6 +81,6 @@ public function testErrors(): void
7381
}
7482
}
7583

76-
self::assertSame(33, $file->getErrorCount());
84+
self::assertSame(43, $file->getErrorCount());
7785
}
7886
}

0 commit comments

Comments
 (0)