Skip to content

Conversation

@RobinTheHood
Copy link
Contributor

Introduce a GitHub Action that runs PHP CodeSniffer to enforce PSR-12 coding standards on PHP files during pull requests.

See: #14 (comment)

@RobinTheHood RobinTheHood added the enhancement New feature or request label Nov 13, 2025
@Tomcraft1980
Copy link
Contributor

Halleluja, hier wird es komplex...

@RobinTheHood
Copy link
Contributor Author

RobinTheHood commented Nov 13, 2025

Halleluja, hier wird es komplex...

@Tomcraft1980 Wir können das ganz klein auseinander nehmen und erklären und wir können es auch komplett weg lassen. Ist nicht wichtig und für den Anfang auch vielleicht zu viel. Aber dann hat man es einmal gesehen. In der täglichen Arbeit kann es viel Arbeit abnehmen. Aber es soll auch nicht überfordern.

@RobinTheHood
Copy link
Contributor Author

Ich erkläre einmal was hier passiert ...

@Tomcraft1980
Copy link
Contributor

Wichtig wäre erstmal zu wissen, was zu tun ist um die Checks erfolgreich durchlaufen zu lassen. 😉

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980
Man kann in GitHub sogenannte Actions bzw. Workflows hinzufügen. Diese Skripte laufen auf Servern (Runnern), die GitHub für uns bereitstellt. Wenn man eine Action hinzufügen möchte, legt man eine YAML-Datei im Ordner .github/workflows ab.

Ich habe dort ein Skript abgelegt, das ich php-code-style.yml genannt habe. In diesem Skript habe ich u. a. Folgendes definiert:

# Name der GitHub Action, der im Actions-Tab angezeigt wird
name: PHP Code Style

Das ist einfach ein Name, den ich mir ausgedacht habe. Er wird beim Klick oben im Reiter Actions und im PR unter den Checks angezeigt.

Dann habe ich festgelegt, dass die Action nur gestartet werden soll, wenn ein Pull Request erstellt oder aktualisiert wird, der in den main-Branch gemerged werden soll:

# Trigger: Wird bei jedem Push zu einem Pull Request ausgeführt
on:
  pull_request:
    branches: [ main ]  # Nur PRs zum main-Branch

In der Action wird dann definiert, auf welchem Betriebssystem der Job laufen soll. GitHub startet dafür einen frischen Runner. Ich möchte, dass alles auf der neuesten Ubuntu-Linux-Umgebung läuft:

jobs:
  phpcs:
    runs-on: ubuntu-latest  # Ubuntu Linux Container

Jetzt kann ich Schritt für Schritt festlegen, welche Befehle bzw. Unterskripte auf diesem Ubuntu-Runner ausgeführt werden sollen.

Als Erstes möchte ich den Code des PR „auschecken“. Theoretisch könnte ich das mit git clone usw. selbst machen, aber dann müsste ich mühsam die Repo-URL und die PR-Referenz herausfinden. GitHub bietet dafür eine fertige Action an: actions/checkout@v4. Die rufe ich einfach auf, und sie erledigt das für mich:

    steps:
      # Schritt 1: Code aus dem Repository laden
      # Hier verwenden wir eine vorgefertigte Action von GitHub
      - uses: actions/checkout@v4

Bis hierhin hat GitHub nur einen leeren Ubuntu-Runner bereitgestellt. PHP und Tools wie phpcs sind dort aber nicht zwingend so installiert, wie ich sie brauche. Dafür gibt es in der PHP-Welt eine sehr praktische Action von shivammathur, die shivammathur/setup-php@v2 heißt. Damit kann ich einfach angeben, welche PHP-Version und welche Tools installiert werden sollen. Jedem Schritt kann ich btw. optional einen Namen geben, hier z. B. „Setup PHP“, dem Step zuvor haben ich keinen Namen gegeben.

      # Schritt 2: PHP installieren und phpcs einrichten
      # Hier verwenden wir eine vorgefertigte Action von shivammathur
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'  # PHP Version
          tools: phpcs        # PHP CodeSniffer installieren

Jetzt ist der PR-Code ausgecheckt und PHP 8.2 plus phpcs sind installiert. Im nächsten Schritt kann ich phpcs aufrufen. Hier lasse ich phpcs alle PHP-Dateien nach dem Standard PSR-12 prüfen und gebe vorsichtshalber explizit die zu prüfenden Ordner an. Diesen Schritt nenne ich z. B. „Check PHP Code Style (PSR-12)“:

      - name: Check PHP Code Style (PSR-12)
        run: phpcs --standard=PSR12 *.php admin/*.php includes/*.php

Wenn jetzt eines der verwendeten Tools/Programme/Befehle

  • actions/checkout@v4
  • shivammathur/setup-php@v2
  • phpcs

mit einem Fehler (also einem Exit-Code ungleich 0) endet, wird der Job als fehlgeschlagen markiert. Im PR sieht man dann so etwas wie:

action-check

Und in der Übersicht steht dann in der Form:

SCRIPT-NAME / PROGRAMM (Trigger/Event)

Also in unserem Fall z. B.:

PHP Code Style / phpcs (pull_request)

Das bedeutet: In der Action „PHP Code Style“ (den Namen haben wir ja frei gewählt) ist der Schritt mit dem Programmaufruf phpcs fehlgeschlagen und der gesamte Workflow wurde durch ein (pull_request)-Event ausgelöst.

Was muss man also jetzt machen?

  1. Klicke im PR auf den Eintrag PHP Code Style / phpcs (pull_request).
  2. Es öffnet sich eine Übersicht mit allen einzelnen Schritten der Action.
  3. Der Schritt, der fehlgeschlagen ist, wird normalerweise automatisch aufgeklappt – falls nicht, klappe ihn manuell aus.
  4. Dort siehst du die komplette Ausgabe von phpcs.
  5. phpcs zeigt für jeden ERROR an, dass eine bestimmte Stelle in einer PHP-Datei nicht dem PSR-12-Standard entspricht. WARNINGS kann man ignorieren, wenn man möchte.
  6. Korrigiere nun alle betroffenen PHP-Dateien so, dass phpcs keine Fehler mehr meldet. Danach machst du einfach einen neuen Commit, die Action läuft dann automatisch erneut und prüft alles noch einmal.
  7. Sobald keine ERRORs mehr übrig sind, werden alle Checks erfolgreich bestanden.

Hinweis: Da wir anfangs noch nicht konsequent auf PSR-12 geachtet haben und die Action der Einfachheit halber alle Dateien prüft (nicht nur neue oder geänderte), tauchen jetzt natürlich sehr viele Meldungen auf. Das ließe sich später noch gezielt verbessern.

@RobinTheHood
Copy link
Contributor Author

Hier mal ein Beispiel aus der Ausgabe:

FILE: /home/runner/work/test/test/index.php
Time: 109ms; Memory: 8MB
------------------------------------------------------------------------
FOUND 1 ERROR AFFECTING 1 LINE
------------------------------------------------------------------------
 1 | ERROR | [x] Header blocks must be separated by a single blank line
------------------------------------------------------------------------

Er sagt hier:

  • In der Datei index.php (/home/runner/work/test/test/index.php)
  • Zeile 1
  • Soll nach dem Header Bock (<?php)
  • eine Leerzeile ohne Inhalt kommen

Aktuell (falsch)

<?php
echo 1; // Debug
echo 1;
...

Richtig wäre:

<?php

echo 1; // Debug
echo 1;
...

@Tomcraft1980
Copy link
Contributor

Tomcraft1980 commented Nov 13, 2025

Danke dir für die super verständliche Erklärung! 👍

Jetzt ist der PR-Code ausgecheckt und PHP 8.2 plus phpcs sind installiert. Im nächsten Schritt kann ich phpcs aufrufen. Hier lasse ich phpcs alle PHP-Dateien nach dem Standard PSR-12 prüfen und gebe vorsichtshalber explizit die zu prüfenden Ordner an. Diesen Schritt nenne ich z. B. „Check PHP Code Style (PSR-12)“:

      - name: Check PHP Code Style (PSR-12)
        run: phpcs --standard=PSR12 *.php admin/*.php includes/*.php

Da wird den Code gerade für PHP 8.4 fit machen, wird es Sinn machen hier 8.4 zu verwenden.
Muss man jedes verzeichnis einzeln angeben, welches man durch den Workflow laufen lassen möchte oder man man auch Platzhalter verwenden?

Sowas wie:

      - name: Check PHP Code Style (PSR-12)
        run: phpcs --standard=PSR12 *.php */*.php

Und was ist mit Unterverzeichnissen? Werden die automatisch mit berücksichtigt?

Hinweis: Da wir anfangs noch nicht konsequent auf PSR-12 geachtet haben und die Action der Einfachheit halber alle Dateien prüft (nicht nur neue oder geänderte), tauchen jetzt natürlich sehr viele Meldungen auf. Das ließe sich später noch gezielt verbessern.

Ich meine, dass Gerhard hier den Code nach dem Import ins Git einmal komplett über VS Code formatieren wollte. Da gibt es wohl ein Plugin für, welches das erledigt. Das wird uns die Arbeit später sicherlich erleichtern.

P.S.: Wie und wo muss ich jetzt die Dateien ändern, damit sie durch die Checks laufen?
P.P.S.: Hat sich erledigt, habe gerade den PR #19 gefunden. Also muss es in einem neuen PR geschehen, verstehe. Dachte man kann das innerhalb dieses PR lösen.

Copy link
Contributor

@Tomcraft1980 Tomcraft1980 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Siehe inline Kommentar.

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980

  1. Zur PHP-Version in der Action
    Wir verwenden hier PHP 8.2, weil einige der Tools im Workflow möglicherweise noch PHP 8.2 als Laufzeitumgebung benötigen. (Habe ich nicht überprüft, ich habe bis jetzt nur bei mir noch nie höher ausprobiert) Das bedeutet nicht, dass der Shop intern speziell für 8.2 überprüft wird, das wäre davon unabhängig. Wir können aber gerne ausprobieren, ob phpcs auch unter PHP 8.4 sauber läuft. Selbst wenn phpcs selbst nur unter 8.2 ausgeführt wird, kann es trotzdem PHP 8.4 Syntax erkennen und prüfen, das ist also kein Problem. Aber ich gebe dir recht, wenn phpcs bereits unter 8.4 läuft, würde ich auch 8.4 verwenden.

  2. Zu den Pfaden für phpcs
    Du hast hier mehrere Optionen:

  • Einzelne Verzeichnisse angeben (so wie im Beispiel).
  • Glob-Pattern nutzen, z. B. *.php */*.php
  • Oder am einfachsten: direkt rekursiv prüfen, indem du den Projektordner angibst, z. B. (den Punkt am Ende beachten):
    phpcs --standard=PSR12 --extensions=php .
    Dann werden alle Unterverzeichnisse automatisch berücksichtigt. Falls du bestimmte Ordner ausschließen möchtest, geht das über --ignore.
  1. Zu den Änderungen im PR
    Du brauchst dafür nicht zwingend einen neuen PR, du könntest die Formatierungs- bzw. Coding-Style-Änderungen auch direkt in diesem PR machen. Ich persönlich finde es aber sauberer, so etwas zu trennen: Ein PR, der ein neues Tool / eine Action einführt und ein separater PR, der sich nur um den Code-Style kümmert. Auch in der CONTRIBUTION.md wird empfohlen, PRs nicht zu überladen („Nicht zu viel in einem PR“). Später seid ihr froh, wenn nicht 4 Features in einem PR landen und man nicht mehr klar trennen kann, was eigentlich wozu gehört.

@Tomcraft1980
Copy link
Contributor

Tomcraft1980 commented Nov 13, 2025

  1. Zur PHP-Version in der Action
    Wir verwenden hier PHP 8.2, weil einige der Tools im Workflow möglicherweise noch PHP 8.2 als Laufzeitumgebung benötigen. (Habe ich nicht überprüft, ich habe bis jetzt nur bei mir noch nie höher ausprobiert) Das bedeutet nicht, dass der Shop intern speziell für 8.2 überprüft wird, das wäre davon unabhängig. Wir können aber gerne ausprobieren, ob phpcs auch unter PHP 8.4 sauber läuft. Selbst wenn phpcs selbst nur unter 8.2 ausgeführt wird, kann es trotzdem PHP 8.4 Syntax erkennen und prüfen, das ist also kein Problem. Aber ich gebe dir recht, wenn phpcs bereits unter 8.4 läuft, würde ich auch 8.4 verwenden.

Ich habe jetzt testhalber mal auf PHP 8.4 gestellt.

  1. Zu den Pfaden für phpcs
    Du hast hier mehrere Optionen:
  • Einzelne Verzeichnisse angeben (so wie im Beispiel).
  • Glob-Pattern nutzen, z. B. *.php */*.php
  • Oder am einfachsten: direkt rekursiv prüfen, indem du den Projektordner angibst, z. B. (den Punkt am Ende beachten):
    phpcs --standard=PSR12 --extensions=php .
    Dann werden alle Unterverzeichnisse automatisch berücksichtigt. Falls du bestimmte Ordner ausschließen möchtest, geht das über --ignore.

Das klingt für mich ehrlich gesagt am besten. Also alles rekursiv und dann Ausnahmen für die Dinge, die wir von extern eingebunden haben, sowas wie Smarty, GuzzleHttp, Psr oder Magnalister

  1. Zu den Änderungen im PR
    Du brauchst dafür nicht zwingend einen neuen PR, du könntest die Formatierungs- bzw. Coding-Style-Änderungen auch direkt in diesem PR machen. Ich persönlich finde es aber sauberer, so etwas zu trennen: Ein PR, der ein neues Tool / eine Action einführt und ein separater PR, der sich nur um den Code-Style kümmert. Auch in der CONTRIBUTION.md wird empfohlen, PRs nicht zu überladen („Nicht zu viel in einem PR“). Später seid ihr froh, wenn nicht 4 Features in einem PR landen und man nicht mehr klar trennen kann, was eigentlich wozu gehört.

Ich habe jetzt mal testweise hier direkt in den PR die Änderung bzgl. PHP 8.4 rein gebracht. Scheint funktioniert zu haben.

uses: shivammathur/setup-php@v2
with:
php-version: '8.2' # PHP Version
php-version: '8.4' # PHP Version
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sehr gut. Der Check schlägt zwar fehl, weil die PHP Dateien noch nicht alle PRS12 sind. Aber das Tool hat kein PHP Error, weil es nicht unter PHP8.4 läuft. 8.4 scheint zu funktionieren. 🙂

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Jepp, können wir wohl erstmal so lassen. 🎉

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980 Wäre jetzt spannend zu sehen was passiert, wenn der PR #19 gemerged wird, der einige Coding Style Fehler die hier der Check bemängelt beheben sollte. Dann sollte hier der Check durchlaufen und grün angezeigt werden.

Btw.: da die Action bis jetzt nur hier im PR enthalten ist, und ihr den PR noch nicht freigeben habt / in main gemerged habt, läuft die Action noch nicht bei anderen PRs.

@Tomcraft1980
Copy link
Contributor

Ich denke @modGTB wird den PR #19 morgen approven und dann werden wir schlauer sein. 😁

@modGTB
Copy link
Member

modGTB commented Nov 13, 2025

Da gibt es einen Error

@RobinTheHood
Copy link
Contributor Author

Ach ja, ich hatte ja noch zur Demo ein WARNING übrig gelassen. Ich hatte vergessen in der Action zu sagen, dass WARNINGs nicht zu Fehlern führt. Sorry mein Fehler. Wenn man sich den Check im Detail ansieht, sieht man, dass er nur noch ein einziges WARNING bemängelt.

@Tomcraft1980
Copy link
Contributor

Tomcraft1980 commented Nov 13, 2025

Was war denn das Warning?
Macht es nicht mehr Sinn das Warning zu korrigieren, anstatt der Action zu sagen, dass sie Warnings ignorieren soll?

P.S.: Unter dem Reiter "Actions" sind nun 4 Actions und nur die letzte lief durch.
Sind die anderen jetzt zu löschen?

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980 Man kann in der Config Datei phpcs.xml.dist von phpcs genau festlegen, welche Coding Style Regeln zu Fehlern oder welche zu Warnings führen sollen. Je genauer man sich dran halten möchte ... aus meiner Sicht um so besser. Zur Demonstration wollte ich hier einmal zeigen das es einen Unterschied zwischen Warnings und Errors gibt. Es hängt dann am Ende davon ab, welchen Coding Style ihr verwenden möchtet und wie hart der modified Code es am Anfang mitmacht.

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980 Ich habe mir da noch nie Gedanken drüber gemacht, ob es sinnvoll ist die ehemaligen Action-Runs zu löschen. 😅

@Tomcraft1980
Copy link
Contributor

@Tomcraft1980 Man kann in der Config Datei phpcs.xml.dist von phpcs genau festlegen, welche Coding Style Regeln zu Fehlern oder welche zu Warnings führen sollen. Je genauer man sich dran halten möchte ... aus meiner Sicht um so besser. Zur Demonstration wollte ich hier einmal zeigen das es einen Unterschied zwischen Warnings und Errors gibt. Es hängt dann am Ende davon ab, welchen Coding Style ihr verwenden möchtet und wie hart der modified Code es am Anfang mitmacht.

Ich habe die Warnings mal wieder mit rein genommen, will mir das mal anschauen.

@Tomcraft1980 Ich habe mir da noch nie Gedanken drüber gemacht, ob es sinnvoll ist die ehemaligen Action-Runs zu löschen. 😅

Ah okay das ist also nur das log bzw. die History der vergangenen Durchläufe. Ich dachte dort ist die Action, aber die liegt ja in /.github/workflows/php-code-style.yml

@1bigQ
Copy link
Contributor

1bigQ commented Nov 13, 2025

Ich habe gerade einen PR versucht. Zugriff verweigert. Jetzt weiß ich nicht, ob das am Projekt liegt oder ich generell ein Problem habe mit GitHub.
image

@Tomcraft1980
Copy link
Contributor

Tomcraft1980 commented Nov 13, 2025

Uffff... das war ne schwere Geburt.
ich denke da werden wir Spaß haben mit unserem Code des Shops. 🤣
Vielleicht ist da doch sowas angebracht wie:

run: phpcs --standard=PSR12 --ignore=PSR1.Files.SideEffects *.php admin/*.php

Wir müssen ja nicht gleich alle Warnings abschalten, sondern erstmal nur die SideEffects und dann mal schauen, was da noch so kommt. 😉

@Tomcraft1980 Man kann in der Config Datei phpcs.xml.dist von phpcs genau festlegen, welche Coding Style Regeln zu Fehlern oder welche zu Warnings führen sollen. [...]

Wo findet man denn diese Datei?

@Tomcraft1980
Copy link
Contributor

@Tomcraft1980 Man kann in der Config Datei phpcs.xml.dist von phpcs genau festlegen, welche Coding Style Regeln zu Fehlern oder welche zu Warnings führen sollen. [...]

Ich habe gerade einen PR versucht. Zugriff verweigert. Jetzt weiß ich nicht, ob das am Projekt liegt oder ich generell ein Problem habe mit GitHub. image

Sicher, dass du einen PR versucht hast und nicht einen direkten Push in den main Branch?

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980 @1bigQ Ich beantworte gleich beide eure Fragen, bin nicht ganz so schnell beim Schreiben. Schon mal kurz: @1bigQ hat keine Schreib recht um einen Branch den er bei sich lokal macht direkt in das Repo zu Pushen, weil der nicht Mitglied der Organisation ist. Er müsste also ein Fork machen, den Branch dann in seinem Fork pushen und dann dann daraus in PR machen. Gleich mehr ...

@1bigQ
Copy link
Contributor

1bigQ commented Nov 13, 2025

Check. Dann erstelle ich erstmal einen Fork. Dachte das ginge ohne.

@1bigQ
Copy link
Contributor

1bigQ commented Nov 13, 2025

Ok. Der PR aus dem Fork ist anscheinend angekommen. Muss das dann immer über GitHub laufen? Sonst schaue ich mal wo ich das im Programm einstellen kann, dass es über das Programm gehen könnte.

@Tomcraft1980 Tomcraft1980 merged commit d5d2d54 into main Nov 13, 2025
1 check passed
@Tomcraft1980 Tomcraft1980 deleted the chore/add-php-file-linting-action branch November 13, 2025 20:49
@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980 Die Datei phpcs.xml.dist oder phpcs.xml liegt idealerweise im Root Verzeichnis des Projekts, also dort, wo sich auch Dateien wie composer.json, .gitignore oder README.md etc. befinden. Das hat den Grund, dass phpcs automatisch in diesem Bereich nach einer passenden Konfigurationsdatei sucht und sich viele Tools wie VS Code, PhpStorm oder GitHub Actions etc. auf diesen Standard verlassen. Sie lesen diese Datei aus, so das der Editor/IDE direkt beim Bearbeiten Fehler/Hinweise anzeigen kann. Mann kann die Datei zwar an einen anderen Ort legen, müsste dann jedoch bei jedem Aufruf von phpcs den Pfad manuell angeben z. B. phpcs --standard=config/phpcs.xml.dist, was Fehler anfälliger ist und oft die Arbeit aller Beteiligten erschwert, wenn man mit aktuellen Editoren/IDEs arbeitet.

@Tomcraft1980
Copy link
Contributor

Wieso ist das fehleranfälliger? Der Pfad wird doch nur einmalig in der /.github/workflows/php-code-style.yml gesetzt oder nicht? Da erfolgt doch der Aufruf von phpcs dann automatisch.
Könntest du uns mal eine phpcs.xml.dist oder phpcs.xml erstellen mit sinnvollen Einstellungen? Also bei "SideEffects" bin ich mir ziemlich sicher, dass wir da keinen Abbruch haben wollen für's erste. Sonst können wir 3/4 vom Shop umbauen. 🤣

@RobinTheHood
Copy link
Contributor Author

Ich meine, dass Gerhard hier den Code nach dem Import ins Git einmal komplett über VS Code formatieren wollte. Da gibt es wohl ein Plugin für, welches das erledigt. Das wird uns die Arbeit später sicherlich erleichtern.

@Tomcraft1980 @modGTB
Wenn ihr eure PHP-Codebasis einheitlich formatieren möchtet, ist es vielleicht interessant zu wissen, dass es zwei unterschiedliche Arten von Werkzeugen gibt und beide verfolgen ein ganz eigen Ziel.

PHP CS Fixer ist ein reines „Aufräum-Werkzeug“ oder auch Laravael Pint. Es passt nur den Schreibstil des Codes an, also Dinge wie Einrückungen, Leerzeilen, Klammern oder die Reihenfolge der use-Statements. Es sorgt dafür, dass alles nach einem einheitlichen Standard wie PSR-12 aussieht. Es verändert dabei nie die eigentliche Logik. Der Code sieht danach einfach ordentlicher aus, funktioniert aber genau wie vorher. Dieses Tool eignet sich ideal für Team-Projekte, weil jeder Entwickler automatisch denselben Stil einhält ohne das drauf achten muss, da PHP CS Fixer es immer automatisch korrigiert (wenn möglich).

Rector dagegen geht viel viel weiter. Es ist kein Style-Tool, sondern ein Werkzeug für Refactorings. Damit kann man den Code automatisch modernisieren oder auf eine neue PHP-Version heben, ohne alles per Hand umzuschreiben. Rector kann zum Beispiel alte Funktionen durch moderne Sprachfeatures ersetzen, Arrays auf die neue []-Syntax umstellen, veralteten Code reparieren toten Code erkennen und löschen oder sogar beim Umstieg von PHP 7 auf PHP 8 helfen. Es nimmt also strukturelle und teilweise auch logische Änderungen vor, nicht nur Schönheitskorrekturn.

Wenn man nur möchte, dass der Code "hübsch und einheitlich" aussieht, nimmt man PHP CS Fixer oder Laravel Pint. Wenn man den Code automatisch modernisieren, aktualisieren oder strukturell verbessern möchte, nimmt man z. B. Rector. In vielen Projekten verwendet man sogar beide Programme: PHP CS Fixer für den Stil und Rector für langfristige Verbesserungen und Modernisierungen.

@RobinTheHood
Copy link
Contributor Author

@Tomcraft1980 Welchen Coding Stand möchtet ihr denn gerne? PSR12 (gängige Praxis) als Basis und erst einmal etwas aufweichen, damit einem nicht alles um die Ohren fliegt?

@RobinTheHood
Copy link
Contributor Author

Wieso ist das fehleranfälliger? Der Pfad wird doch nur einmalig in der /.github/workflows/php-code-style.yml gesetzt oder nicht? Da erfolgt doch der Aufruf von phpcs dann automatisch.

@Tomcraft1980 Das kommt etwas auf die Sichtweise an. Betrachtet mach nur die Aktion / Workflow. Dann ist es im Grunde egal. Wenn du aber z. B. mit einem Editor wie VS Code oder PHPStorm arbeitest, dann suchen diese die Datei für gewöhnlich im Root Verzeichnis.

VS Code zeigt mir die Fehler und Warnings bereits beim Schreiben mit Hilfe von phpcs an. Liegt die Datei nicht im Root. Muss ich den Editor erst nachkonfigurieren. Kein Beinbruch und machbar. Aber es ist auch schön wenn es out-of-the-box funktioniert.

phpcs-vs-code

@Tomcraft1980
Copy link
Contributor

Wenn man nur möchte, dass der Code "hübsch und einheitlich" aussieht, nimmt man PHP CS Fixer oder Laravel Pint. Wenn man den Code automatisch modernisieren, aktualisieren oder strukturell verbessern möchte, nimmt man z. B. Rector. In vielen Projekten verwendet man sogar beide Programme: PHP CS Fixer für den Stil und Rector für langfristige Verbesserungen und Modernisierungen.

Danke dir! Ich denke die Tools wird sich Gerhard dann mal in VS Code anschauen.

@Tomcraft1980 Welchen Coding Stand möchtet ihr denn gerne? PSR12 (gängige Praxis) als Basis und erst einmal etwas aufweichen, damit einem nicht alles um die Ohren fliegt?

Ja, genau so. 👍

VS Code zeigt mir die Fehler und Warnings bereits beim Schreiben mit Hilfe von phpcs an. Liegt die Datei nicht im Root. Muss ich den Editor erst nachkonfigurieren. Kein Beinbruch und machbar. Aber es ist auch schön wenn es out-of-the-box funktioniert.

Alles klar, dann vielleicht doch lieber im Root, wo die IDEs die Datei automatisch finden und verwenden.

@RobinTheHood
Copy link
Contributor Author

Ja, genau so. 👍

@Tomcraft1980 siehe PR #23 zum Thema phpcs.xml.dist

@Tomcraft1980
Copy link
Contributor

Danke dir!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants