This package contains all of Worksome's custom sniffs and configuration.
composer require worksome/code-sniffer --dev
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
List all the custom sniffs created by Worksome.
All custom sniffs specific to Laravel.
Checks if all config files are written in kebab case.
Makes sure that you don't use env
helper in your code, except for config files.
Enforces event listeners to end with a specific suffix, this suffix is defaulted to Listener
.
parameters | defaults |
---|---|
suffix | Listener |
Makes sure no .blade.php
files exist outside of Laravel's resources
directory.
parameters | defaults |
---|---|
resourcesDirectory | {YOUR_PROJECT}/resources |
All custom sniffs which are not specific to Laravel.
Makes sure that you always have a dollar sign in your properties defined in phpdoc.
/**
* @property string $name
*/
class User {}
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.