update development helpers chapter
This commit is contained in:
parent
e92869c00c
commit
fde9b5c11e
1 changed files with 5 additions and 54 deletions
|
@ -215,56 +215,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
|
||||||
You can now use `./vendor/bin/ecs` to list all violations of the defined standard and `./vendor/bin/ecs --fix` to
|
You can now use `./vendor/bin/ecs` to list all violations of the defined standard and `./vendor/bin/ecs --fix` to
|
||||||
automatically fix them.
|
automatically fix them.
|
||||||
|
|
||||||
#### PHP Codesniffer
|
|
||||||
|
|
||||||
The PHPCodesniffer is sort of a combination of the previous tools, it checks for a defined codingstyle and some extra
|
|
||||||
rules that are not just stylechanges but instead enforces extra rules in if-statements, exception handling etc.
|
|
||||||
|
|
||||||
it provides the `phpcs` command to check for violations and the `phpcbf` command to actually fix most of the violations.
|
|
||||||
|
|
||||||
Without configuration the tool tries to apply the PSR12 standard just like the php-cs-fixer, but as you might have
|
|
||||||
guessed we are adding some extra rules.
|
|
||||||
|
|
||||||
Lets install the ruleset with composer
|
|
||||||
```shell
|
|
||||||
composer require --dev mnapoli/hard-mode
|
|
||||||
```
|
|
||||||
|
|
||||||
and add a configuration file to actually use it `.phpcs.xml.dist`
|
|
||||||
```xml
|
|
||||||
<?xml version="1.0"?>
|
|
||||||
<ruleset>
|
|
||||||
<arg name="basepath" value="."/>
|
|
||||||
|
|
||||||
<file>src</file>
|
|
||||||
|
|
||||||
<rule ref="HardMode"/>
|
|
||||||
</ruleset>
|
|
||||||
```
|
|
||||||
|
|
||||||
running `./vendor/bin/phpcs` now checks our src directory for violations and gives us a detailed list about the findings.
|
|
||||||
|
|
||||||
```
|
|
||||||
[vagrant@archlinux app]$ ./vendor/bin/phpcs
|
|
||||||
|
|
||||||
FILE: src/Bootstrap.php
|
|
||||||
----------------------------------------------------------------------------------------------------
|
|
||||||
FOUND 4 ERRORS AFFECTING 4 LINES
|
|
||||||
----------------------------------------------------------------------------------------------------
|
|
||||||
7 | ERROR | [x] Use statements should be sorted alphabetically. The first wrong one is Throwable.
|
|
||||||
8 | ERROR | [x] Expected 1 lines between different types of use statement, found 0.
|
|
||||||
11 | ERROR | [x] Expected 1 lines between different types of use statement, found 0.
|
|
||||||
24 | ERROR | [x] String "ERROR: " does not require double quotes; use single quotes instead
|
|
||||||
----------------------------------------------------------------------------------------------------
|
|
||||||
PHPCBF CAN FIX THE 4 MARKED SNIFF VIOLATIONS AUTOMATICALLY
|
|
||||||
----------------------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Time: 639ms; Memory: 10MB
|
|
||||||
```
|
|
||||||
|
|
||||||
You can then use `./vendor/bin/phpcbf` to try to fix them
|
|
||||||
|
|
||||||
|
|
||||||
#### Symfony Var-Dumper
|
#### Symfony Var-Dumper
|
||||||
|
|
||||||
another great tool for some quick debugging without xdebug is the symfony var-dumper. This just gives us some small
|
another great tool for some quick debugging without xdebug is the symfony var-dumper. This just gives us some small
|
||||||
|
@ -290,8 +240,8 @@ with lots of parameters by hand all the time, so I added a few lines to my `comp
|
||||||
],
|
],
|
||||||
"phpstan": "./vendor/bin/phpstan analyze",
|
"phpstan": "./vendor/bin/phpstan analyze",
|
||||||
"baseline": "./vendor/bin/phpstan analyze --generate-baseline",
|
"baseline": "./vendor/bin/phpstan analyze --generate-baseline",
|
||||||
"check": "./vendor/bin/phpcs",
|
"check": "./vendor/bin/ecs",
|
||||||
"fix": "./vendor/bin/php-cs-fixer fix && ./vendor/bin/phpcbf"
|
"fix": "./vendor/bin/ecs --fix"
|
||||||
},
|
},
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -303,7 +253,8 @@ You could also configure PhpStorm to automatically run these commands in the bac
|
||||||
directly in the file you are currently editing. I personally am not a fan of this approach because it often disrupts my
|
directly in the file you are currently editing. I personally am not a fan of this approach because it often disrupts my
|
||||||
flow when programming and always forces me to be absolutely strict even if I am only trying out an idea for debugging.
|
flow when programming and always forces me to be absolutely strict even if I am only trying out an idea for debugging.
|
||||||
|
|
||||||
My workflow is to just write my code the way i currently feel and that execute the phpstan and the fix scripts before
|
My workflow is to just write my code the way I currently feel and that execute the phpstan and the fix scripts before
|
||||||
commiting and pushing the code.
|
commiting and pushing the code. There is a [highly opiniated blogpost](https://tomasvotruba.com/blog/2019/06/24/do-you-use-php-codesniffer-and-php-cs-fixer-phpstorm-plugin-you-are-slow-and-expensive/)
|
||||||
|
discussing that topic further. That you can read. But in the end it boils down to what you are most comfortable with.
|
||||||
|
|
||||||
[<< previous](03-error-handler.md) | [next >>](05-http.md)
|
[<< previous](03-error-handler.md) | [next >>](05-http.md)
|
Loading…
Reference in a new issue