worksome/code-sniffer

Worksome's preferences and custom sniffers for phpcs

Installs: 62 432

Dependents: 2

Suggesters: 0

Security: 0

Stars: 5

Watchers: 11

Forks: 0

Open Issues: 1

Type:phpcodesniffer-standard

v0.7.1 2022-01-11 09:50 UTC

README

This package contains all of Worksome's custom sniffs and configuration.

composer require worksome/code-sniffer --dev

Usage

Create a phpcs.xml in the root of your project with content like the following

<?xml version="1.0" encoding="UTF-8"?>
<ruleset name="YourCompany">
    <description>YourCompany Coding Standard</description>

    <file>./app</file>
    <file>./tests</file>
    <file>./config</file>

    <arg name="colors"/>
    <arg name="parallel" value="75"/>

    <!-- Adds all of Worksome's coding style -->
    <rule ref="WorksomeSniff"/>
</ruleset>

Run phpcs for seeing if you have any errors

vendor/bin/phpcs

Or run phpcbf for automatically fixing the errors when possible

vendor/bin/phpcbf

We suggest adding the commands as scripts in your composer.json for easier execution.

...
"scripts": {
    "phpcs": "vendor/bin/phpcs",
    "phpcbf": "vendor/bin/phpcbf"
}
...

This way you can now execute them via composer

$ composer phpcs
$ composer phpcbf

Custom sniffs

List all the custom sniffs created by Worksome.

Laravel

All custom sniffs specific to Laravel.

Config filename kebab case

Checks if all config files are written in kebab case.

Disallow env usage

Makes sure that you don't use env helper in your code, except for config files.

Event listener suffix

Enforces event listeners to end with a specific suffix, this suffix is defaulted to Listener.

parameters defaults
suffix Listener

PhpDoc

All custom sniffs which are not specific to Laravel.

Property dollar sign

Makes sure that you always have a dollar sign in your properties defined in phpdoc.

/**
* @property string $name
 */
class User {}

Param tags with no type or comment

This removes all @param tags which has no specified a type or comment

/**
 * @param string $name
 * @param $type some random type
 * @param $other // <-- will be removed
 */
public function someMethod($name, $type, $other): void
{}

This is mainly because phpstan requires this before it sees the property as valid.