Check Style IPS 7.0 PHP 8.2

In PhpStorm und in den GitHub actions nutze ich

PHP CS Fixer 3.16.0 (d40f943) BoY42 by Fabien Potencier and Dariusz Ruminski.
PHP runtime: 8.2.0

und euer

https://github.com/symcon/StylePHP

zusammen mit dem Validation Test

https://github.com/symcon/SymconStubs

Jetzt ändert sich mit der 8.2 ja einiges.

.php_cs gibt es ja nicht mehr, muss ja .php-cs-fixer.php heissen, okay.

In dieser Datei müssen weitere Werte hinzugefügt werden, da es auch hier deprecations gibt.

Beim Durchlaufen des Checks ist mien Code soweit OK.

Bei eueren Stubs gibt es aber Probleme:

 1) tests/stubs/KernelStubs.php (braces, curly_braces_position)
 2) tests/stubs/CoreStubs/ArchiveControl/module.php (single_space_around_construct, curly_braces_position, binary_operator_spaces)
 3) tests/stubs/GlobalStubs.php (braces, curly_braces_position)

@paresy
Wie habt ihr euch das vorgestellt, bzw. wie wäre die korrekte Vorgehensweise?

Uli

Warum wird bei dir das auf die Unterordner von Tests angewendet?
Das sollte so nicht sein.
Edit:
Ah, doch hatte ich auch.
Und noch mehr Probleme, da der CS fixer über eine VisualStudio Code Action, Tastatur Shortcut und die GitHub Actions gerne auf den falschen Pfad zeigte; habe ich mir einen fork erstellt:

Michael

Das habe ich ja bereits drin:

$finder = PhpCsFixer\Finder::create()
    ->exclude('tests/stubs')  // exclude the tests-stubs, but not the tests for this module
    ->exclude('docs')  // exclude the docs
    ->notPath('/libs\/.*\//') // regex, exclude only dirs in libs, not the files
    ->in(__DIR__.'/../');     // fix path to run, __DIR__ point to /.style -> so no checks are running :(

Ich prüfe die vorab über nachfolgenden Befehl bei mir:

/Applications/MAMP/bin/php/php8.2.0/bin/php /Users/ubittner/GitHub/ubittner/SymconNukiBridge/dev/php-cs-fixer-v3.phar fix --config=/Users/ubittner/GitHub/ubittner/SymconNukiBridge/.style/.php-cs-fixer.php -v --dry-run --allow-risky=yes /Users/ubittner/GitHub/ubittner/SymconNukiBridge

Ergebnis ist dann:

SSSSSSSSSFSSSSSSSSSSSSFSSSSSSFSSS                                                                                                                                                            33 / 33 (100%)
Legend: .-no changes, F-fixed, S-skipped (cached or empty file), I-invalid file syntax (file ignored), E-error
   1) tests/stubs/KernelStubs.php (braces, curly_braces_position)
   2) tests/stubs/CoreStubs/ArchiveControl/module.php (single_space_around_construct, curly_braces_position, binary_operator_spaces)
   3) tests/stubs/GlobalStubs.php (braces, curly_braces_position)

Found 3 of 33 files that can be fixed in 3.410 seconds, 22.594 MB memory used

Also greift doch gar nicht:

 ->exclude('tests/stubs')

Oder übersehe ich hier gerade etwas?

Uli

Unser Style ist leider immer noch für CS Fixer 2 und wir starten den so:

Wir haben schon länger geplant auf den CS Fixer 3 zu gehen, aber bei der Menge an Repos haben wir bisher noch nicht die Zeit dafür gefunden, die anzugehen.

paresy

Guten Morgen paresy,

v2 unterstützt doch nur bis php 7.

PHP needs to be a minimum version of PHP 5.6.0 and maximum version of PHP 7.4.*.

Uli

Darum habe ich meine Styles schon angepasst.
Die laufen mit v2.19 und v3.16.
Auch wen v3 noch meckert, weil es auch schon weitere deprecations gibt.

Dazu passend gibt habe ich auch eigene Tasks in VSC und Workflows für GitHub, da ja mal php7 und mal php8 benutzt wird.

Michael

Guten Morgen Michael,

dann muss ich mal bei deinen Repos vorbeischauen :wink:

Ich frage mich nur warum:

 ->exclude('tests/stubs')

bei mir nicht greift und er trotzdem die Hinweise auswirft.

Vielleicht muss ich bei PhpStorm noch etwas konfigurieren. Den php-cs-fixer starte ich immer von Hand und habe das noch nicht in PhpStorm direkt integriert.

Vielleicht hat @paresy noch eine Antwort parat.

Allen einen schönen Sonntag!

Uli

So. Unsere Erweiterungen sind endlich verfügbar und bald auch in allen Repositories aktiv dank der Arbeit und @sunnyka98 :slight_smile: Wir haben eure Vorschläge zu den excludes auch 1:1 übernommen.

Hier das Repo mit dem Fixer für V2 und V3:

Falls ihr unsere GitHub Action verwenden wollt, so hat diese jetzt auch einen @v2 und @v3 Tag, womit man die Version konkret angeben kann.

Beispiel:

paresy

3 „Gefällt mir“