6
6
7
7
use PHP_CodeSniffer \Files \File ;
8
8
use PHP_CodeSniffer \Sniffs \AbstractVariableSniff ;
9
- use PHP_CodeSniffer \Util \Common ;
10
9
use PHP_CodeSniffer \Util \Tokens ;
11
10
12
11
use function assert ;
13
12
use function ltrim ;
13
+ use function preg_match ;
14
14
use function preg_match_all ;
15
+ use function sprintf ;
15
16
use function strpos ;
16
17
use function substr ;
17
18
use function ucfirst ;
25
26
26
27
class ValidVariableNameSniff extends AbstractVariableSniff
27
28
{
29
+ public string $ pattern = '^[a-zA-Z][a-zA-Z0-9]*?([A-Z][a-zA-Z0-9]*?)*?$ ' ;
30
+
28
31
/**
29
32
* Processes this test, when one of its tokens is encountered.
30
33
*
@@ -68,7 +71,7 @@ protected function processVariable(File $phpcsFile, $stackPtr): void
68
71
$ objVarName = substr ($ objVarName , 1 );
69
72
}
70
73
71
- if (Common:: isCamelCaps ($ objVarName, false , true , false ) === false ) {
74
+ if (! $ this -> matchesRegex ($ objVarName) ) {
72
75
$ error = 'Member variable "%s" is not in valid camel caps format ' ;
73
76
$ data = [$ originalVarName ];
74
77
$ phpcsFile ->addError ($ error , $ var , 'MemberNotCamelCaps ' , $ data );
@@ -86,7 +89,7 @@ protected function processVariable(File $phpcsFile, $stackPtr): void
86
89
$ objVarName = substr ($ objVarName , 1 );
87
90
}
88
91
89
- if (Common:: isCamelCaps ($ objVarName, false , true , false ) === false ) {
92
+ if (! $ this -> matchesRegex ($ objVarName) ) {
90
93
$ error = 'Member variable "%s" is not in valid camel caps format ' ;
91
94
$ data = [$ tokens [$ stackPtr ]['content ' ]];
92
95
$ phpcsFile ->addError ($ error , $ stackPtr , 'MemberNotCamelCaps ' , $ data );
@@ -106,7 +109,7 @@ protected function processVariable(File $phpcsFile, $stackPtr): void
106
109
}
107
110
}
108
111
109
- if (Common:: isCamelCaps ($ varName, false , true , false ) !== false ) {
112
+ if ($ this -> matchesRegex ($ varName) ) {
110
113
return ;
111
114
}
112
115
@@ -158,7 +161,7 @@ protected function processMemberVar(File $phpcsFile, $stackPtr): void
158
161
// Remove a potential underscore prefix for testing CamelCaps.
159
162
$ varName = ltrim ($ varName , '_ ' );
160
163
161
- if (Common:: isCamelCaps ($ varName, false , true , false ) !== false ) {
164
+ if ($ this -> matchesRegex ($ varName) ) {
162
165
return ;
163
166
}
164
167
@@ -195,7 +198,7 @@ protected function processVariableInString(File $phpcsFile, $stackPtr): void
195
198
continue ;
196
199
}
197
200
198
- if (Common:: isCamelCaps ($ varName, false , true , false ) !== false ) {
201
+ if ($ this -> matchesRegex ($ varName) ) {
199
202
continue ;
200
203
}
201
204
@@ -204,4 +207,9 @@ protected function processVariableInString(File $phpcsFile, $stackPtr): void
204
207
$ phpcsFile ->addError ($ error , $ stackPtr , 'StringNotCamelCaps ' , $ data );
205
208
}
206
209
}
210
+
211
+ private function matchesRegex (string $ varName ): bool
212
+ {
213
+ return preg_match (sprintf ('~%s~ ' , $ this ->pattern ), $ varName ) === 1 ;
214
+ }
207
215
}
0 commit comments