File tree Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Expand file tree Collapse file tree 2 files changed +55
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php declare (strict_types=1 );
2+
3+ namespace Markup \Sniffs \Usage ;
4+
5+ use PHP_CodeSniffer \Files \File ;
6+ use PHP_CodeSniffer \Sniffs \Sniff ;
7+ use SlevomatCodingStandard \Helpers \UseStatementHelper ;
8+
9+ class NamespaceOverwrittenSniff implements Sniff
10+ {
11+ private const BLACKLIST_NAMESPACES = [
12+ [
13+ 'namespace ' => 'Knp \\DoctrineBehaviors \\Model \\Timestampable \\Timestampable ' ,
14+ 'require_use ' => 'Phoenix \\Common \\Database \\Doctrine \\Entity \\Timestampable ' ,
15+ ],
16+ ];
17+
18+ /**
19+ * @return mixed[]
20+ */
21+ public function register ()
22+ {
23+ return [
24+ T_OPEN_TAG ,
25+ ];
26+ }
27+
28+ /**
29+ * @param \PHP_CodeSniffer\Files\File $phpcsFile
30+ * @param int $openTagPointer
31+ */
32+ public function process (File $ phpcsFile , $ openTagPointer )
33+ {
34+ $ useStatements = UseStatementHelper::getUseStatements ($ phpcsFile , $ openTagPointer );
35+
36+ foreach ($ useStatements as $ useStatement ) {
37+ foreach (self ::BLACKLIST_NAMESPACES as $ namespace ) {
38+ if (stripos ($ useStatement ->getFullyQualifiedTypeName (), $ namespace ['namespace ' ]) !== false ) {
39+ $ phpcsFile ->addError (
40+ sprintf (
41+ "Class is %s overwritten, use %s instead " ,
42+ $ useStatement ->getFullyQualifiedTypeName (),
43+ $ namespace ['require_use ' ]
44+ ),
45+ $ useStatement ->getPointer (),
46+ 'BlacklistedNamespace '
47+ );
48+ }
49+ }
50+ }
51+ }
52+ }
Original file line number Diff line number Diff line change 3838 <property name =" spacingBeforeFirst" value =" 0" />
3939 </properties >
4040 </rule >
41+ <rule ref =" Markup.Usage.NamespaceOverwritten.BlacklistedNamespace" >
42+ <type >error</type >
43+ </rule >
4144
4245 <!-- Remove unused use statements -->
4346 <rule ref =" vendor/slevomat/coding-standard/SlevomatCodingStandard/Sniffs/Namespaces/UnusedUsesSniff.php" >
You can’t perform that action at this time.
0 commit comments