3

I'm using the WordPress-Core rules for a project I just started in PhpStorm (involves developing a custom plugin and theme), and I find it strange that most of the default php files in a clean WordPress install (for example, wp-config.php, wp-mail.php, etc.) don't pass the phpcs test when any of the WordPress rules in that repo are used.

Most of the times I see the open and close bracket warning:

PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket
PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket

The WordPress-Core ruleset in the repo says:

<rule ref="PEAR.Functions.FunctionCallSignature">
    <properties>
        <property name="requiredSpacesAfterOpen" value="1"/>
        <property name="requiredSpacesBeforeClose" value="1"/>
    </properties>
</rule>

This makes me think that the warnings are legit(?). If this is the case, why are the WP core files not following WP's own code standards fully?

sgr12
  • 1,047
  • 11
  • 13

1 Answers1

3

Historically, WordPress has avoided cleaning up the Core code style, for several reasons:

  • The tools for checking coding standards were not particularly reliable. This has changed in recent years, with the WordPress Coding Standards (WPCS) project maturing, and many of the little edge cases being fixed in PHPCS.
  • With no reliable automated tools, this would be a manual job, requiring many commits. This causes unnecessary code churn, and makes it harder to look through revision logs.
  • It just hasn't been a high priority. ~4% of WordPress' PHP violates the coding standard, so most folks just don't encounter it.

With the tools maturing, that position changed recently, there's now an in-progress effort to get PHPCS and WPCS working with WordPress Core. With appropriate automated testing, WordPress will continue to match it's own coding standards in the future.

  • Thanks for opening a ticket; glad its accepted and work is in progress :) Cheers! – sgr12 Jul 03 '17 at 19:30
  • A year later, and the "in-progress effort" resulted in the biggest patch to date - an 11 MB diff file, with 100K additions and 77K removals, fixing 90,000 violations (around 4500 still remain to be fixed manually). WPCS 1.0.0 was released, and continues to improve, and WordPress core uses the fixes (and have manual patches) to fix the outstanding issues. – GaryJ Aug 22 '18 at 17:35