phpphpdocphpcodesniffer

Is there a PHPCS standard targeting PHP docblocks?


Is there a PHPCS coding standard that would check that proper annotations (@param, @return, @throws, etc.) are present in a docblock, including the proper spacing between them?


Solution

  • Try running the following command and see if it produces what you want:

    phpcs /path/to/code --standard=Squiz --sniffs=Squiz.Commenting.FunctionComment,Squiz.Commenting.FunctionCommentThrowTag,Squiz.Commenting.ClassComment,Squiz.Commenting.FileComment,Squiz.Commenting.VariableComment

    If it does, you could create your own standard that just includes those sniffs, and anything else you want to check. You do this by creating a ruleset.xml file and using that as your standard.

    For example, you could create a file called mystandard.xml and include the following content:

    <?xml version="1.0"?>
    <ruleset name="MyStandard">
      <description>My custom coding standard.</description>
      <rule ref="Squiz.Commenting.FunctionComment" />
      <rule ref="Squiz.Commenting.FunctionCommentThrowTag" />
      <rule ref="Squiz.Commenting.ClassComment" />
      <rule ref="Squiz.Commenting.FileComment" />
      <rule ref="Squiz.Commenting.VariableComment" />
    </ruleset>
    

    Then you can run this command instead:

    phpcs /path/to/code --standard=/path/to/mystandard.xml
    

    There are other things you can do in a ruleset.xml file. See the docs here: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset