Codequalität in PHP verbessern: Unterschied zwischen den Versionen

Aus Thoms Wiki
Zur Navigation springenZur Suche springen
Zeile 42: Zeile 42:


  composer require captainhook/captainhook --dev
  composer require captainhook/captainhook --dev
== Legacy-Code ==
* "mit Samthandschuhen anzufassen"
* einfache End-to-End oder funktionale Tests kann man sehr schnell aufsetzen (z.B. mit Cypress - https://www.testautomatisierung.org/cypress/)
* PHP-CS-Fixer auf gesamter Codebase
* PHPStan-Analyse mit Level 0, einfache Punkte beheben

Version vom 18. November 2023, 12:49 Uhr

Dieser Eintrag enthält meine Mitschriften zum Linkedin-Learning-Kurs. Link zum Kurs: https://www.linkedin.com/learning/codequalitat-in-php-verbessern

Verschiedene Coding-Standards, z.B: PSR12

PHP-CS-Fixer

fixes the code to follow standards

composer require friendsofphp/php-cs-fixer --dev

Statische Codeanalyse

Die statische Codeanalyse, im Englischen Static Code Analysis, untersucht ausschließlich den Quelltext unserer Software, ohne ihn ausführen zu müssen, daher statisch. Vereinfacht gesagt wird dabei der Quellcode in einen sog. AST, einen Abstract Syntax Tree, zerlegt, d.h. in einem Objektbaum, der aus den kleinsten Bestandteilen der Sprache besteht.

  • PHPStan - phpstan/phpstan
  • PHPMD - phpmd/phpmd
  • Psalm - vimeo/psalm

Code-Editoren konfigurieren

  • PhpStorm
    • Inspections (bekannt)
    • EA Extended - weitere Inspections, kann automatisch fixen.
      Zum Beispiel werden Code-Vereinfachungen auch gleich als "Weak Warning" angezeigt und müssen nicht wie üblich selbst gefunden werden.
  • VS-Code - PHP Intelephense

Lokale Pipleline

  • lokale pre-commit-hooks (git, geht das bei subversion auch?)
  • kann natürlich auch geskippt werden
  • schnelle Schritte zuerst
  • kurze Ausführungszeiten
  • Reihenfolge
    • Code-Sniffer (PHP-CS-Fixer, sehr schnell)
    • Static-Code-Analyzer (PHPStan, PHPMD)
    • Unit Tests

Captain Hook - einfache Konfiguration von git hooks

composer require captainhook/captainhook --dev

Legacy-Code

  • "mit Samthandschuhen anzufassen"
  • einfache End-to-End oder funktionale Tests kann man sehr schnell aufsetzen (z.B. mit Cypress - https://www.testautomatisierung.org/cypress/)
  • PHP-CS-Fixer auf gesamter Codebase
  • PHPStan-Analyse mit Level 0, einfache Punkte beheben