WordPress-Coding-Standards icon indicating copy to clipboard operation
WordPress-Coding-Standards copied to clipboard

Verify method of detecting WordPress.Files.FileName.InvalidTemplateTagFileName

Open pento opened this issue 7 years ago • 5 comments

Bug Description

The WordPress.Files.FileName.InvalidTemplateTagFileName sniff incorrectly throws an error on src/wp-includes/template.php. This file is part of the Template subpackage, but doesn't contain template tags.

https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/blob/e73a10e1c12ce07a12c3a8756efc54701458d23b/WordPress/Sniffs/Files/FileNameSniff.php#L213-L242

Minimal Code Snippet

$ vendor/bin/phpcs --sniffs=WordPress.Files.FileName src/wp-includes/template.php
E 1 / 1 (100%)



FILE: src/wp-includes/template.php
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 1 | ERROR | Files containing template tags should have "-template" appended to the end of the file name. Expected template-template.php, but found template.php.
   |       | (WordPress.Files.FileName.InvalidTemplateTagFileName)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

For bugs with fixers: How was the code fixed? How did you expect the code to be fixed?

Error Code

WordPress.Files.FileName.InvalidTemplateTagFileName

Environment

Question Answer
PHP version 7.1.23
PHP_CodeSniffer version 3.3.1
WPCS version 1.0.0
WPCS install type Composer project local

Tested Against develop branch?

  • [x] I have verified the issue still exists in the develop branch of WPCS.

pento avatar Jan 11 '19 04:01 pento

In that case, either a better way to identify files with template tags needs to be determined or the file could be excluded for that error message with a ruleset exclusion in the Core ruleset:

<rule ref="WordPress.Files.FileName.InvalidTemplateTagFileName">
    <exclude-pattern>src/wp-includes/template\.php$</exclude-pattern>
</rule>

jrfnl avatar Jan 11 '19 06:01 jrfnl

https://core.trac.wordpress.org/changeset/44561

🙂

pento avatar Jan 11 '19 07:01 pento

In that case, unless someone comes up with a better way for us to determine that a file contains template tags, there is nothing more we can do here.

jrfnl avatar Jan 11 '19 07:01 jrfnl

In that case, unless someone comes up with a better way for us to determine that a file contains template tags, there is nothing more we can do here.

Seeing that detecting the @subpackage doctag is (going to be) deprecated this issue should probably be renamed to something like Create new method of detecting WordPress.Files.FileName.InvalidTemplateTagFileName.

NielsdeBlaauw avatar Feb 17 '19 14:02 NielsdeBlaauw

@NielsdeBlaauw Good point, but the PSR 5 & doc handbook both note in favor of a unified package tag: @package Package\Subpackage, so I would expect that once that comes into play, all we'd need to do would be to change the sniff to look at the (end of) the value for the @package instead of the @subpackage tag to solve that.

jrfnl avatar Feb 17 '19 14:02 jrfnl