File tree Expand file tree Collapse file tree 2 files changed +70
-0
lines changed
Inpsyde/Sniffs/CodeQuality Expand file tree Collapse file tree 2 files changed +70
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php declare (strict_types=1 ); # -*- coding: utf-8 -*-
2+ /*
3+ * This file is part of the php-coding-standards package.
4+ *
5+ * (c) Inpsyde GmbH
6+ *
7+ * For the full copyright and license information, please view the LICENSE
8+ * file that was distributed with this source code.
9+ */
10+
11+ namespace Inpsyde \InpsydeCodingStandard \Sniffs \CodeQuality ;
12+
13+ use Inpsyde \InpsydeCodingStandard \Helpers ;
14+ use PHP_CodeSniffer \Files \File ;
15+ use PHP_CodeSniffer \Sniffs \Sniff ;
16+
17+ /**
18+ * @package php-coding-standards
19+ * @license http://opensource.org/licenses/MIT MIT
20+ */
21+ final class NoTopLevelDefineSniff implements Sniff
22+ {
23+ /**
24+ * @return int[]
25+ */
26+ public function register ()
27+ {
28+ return [T_STRING ];
29+ }
30+
31+ /**
32+ * @param File $file
33+ * @param int $position
34+ */
35+ public function process (File $ file , $ position )
36+ {
37+ $ token = $ file ->getTokens ()[$ position ];
38+
39+ if (($ token ['content ' ] ?? '' ) !== 'define '
40+ || ($ token ['level ' ] ?? -1 ) !== 0
41+ || !Helpers::isFunctionCall ($ file , $ position )
42+ ) {
43+ return ;
44+ }
45+
46+ $ file ->addWarning (
47+ 'Do not use "define" for top-level constant definition. Prefer "const" instead. ' ,
48+ $ position ,
49+ 'Found '
50+ );
51+ }
52+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Inpsyde \InpsydeCodingStandard \Tests \Fixtures ;
4+
5+ // @phpcsSniff CodeQuality.NoTopLevelDefine
6+
7+ if (!defined ('X ' )) {
8+ define ('X ' , 1 );
9+ }
10+
11+ if (false ) {
12+ define ('Y ' , 1 );
13+ }
14+
15+ // @phpcsWarningOnNextLine
16+ define ('Z ' , 1 );
17+
18+ const ZZZ = 1 ;
You can’t perform that action at this time.
0 commit comments