Skip to content

Commit 9423bb7

Browse files
committed
Fixed detection of file-level docblocks (ref #750)
Code wasn't taking prefixes into account when determining if the docblock belong to a scope opener
1 parent 0bdbb89 commit 9423bb7

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1200,6 +1200,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
12001200
<file baseinstalldir="PHP/CodeSniffer" name="FileHeaderUnitTest.4.inc" role="test" />
12011201
<file baseinstalldir="PHP/CodeSniffer" name="FileHeaderUnitTest.4.inc.fixed" role="test" />
12021202
<file baseinstalldir="PHP/CodeSniffer" name="FileHeaderUnitTest.5.inc" role="test" />
1203+
<file baseinstalldir="PHP/CodeSniffer" name="FileHeaderUnitTest.6.inc" role="test" />
12031204
<file baseinstalldir="PHP/CodeSniffer" name="FileHeaderUnitTest.php" role="test" />
12041205
<file baseinstalldir="PHP/CodeSniffer" name="ImportStatementUnitTest.inc" role="test" />
12051206
<file baseinstalldir="PHP/CodeSniffer" name="ImportStatementUnitTest.php" role="test" />

src/Standards/PSR12/Sniffs/Files/FileHeaderSniff.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ public function process(File $phpcsFile, $stackPtr)
7272
// Make sure this is not a code-level docblock.
7373
$end = $tokens[$next]['comment_closer'];
7474
$docToken = $phpcsFile->findNext(Tokens::$emptyTokens, ($end + 1), null, true);
75-
if (isset(Tokens::$scopeOpeners[$tokens[$docToken]['code']]) === false) {
75+
if (isset(Tokens::$scopeOpeners[$tokens[$docToken]['code']]) === false
76+
&& isset(Tokens::$methodPrefixes[$tokens[$docToken]['code']]) === false
77+
) {
7678
$foundDocblock = true;
7779
$headerLines[] = [
7880
'type' => 'docblock',
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace App\Controller;
6+
7+
/**
8+
* This is a class docblock, not a file docblock.
9+
*/
10+
final class MyController
11+
{
12+
13+
}

0 commit comments

Comments
 (0)