Schriftzug "Psalm" mit schwarzen Buchstaben und einer roten 4 daneben

Einleitung Psalm

Psalm ist ein statisches Analysewerkzeug für PHP, das darauf abzielt, Fehler im Code zu erkennen, bevor dieser ausgeführt wird. Es geht über die grundlegenden Syntaxprüfungen hinaus und analysiert den Code auf Typfehler, tote Code-Bereiche, ungenutzte Variablen und vieles mehr. Durch die frühzeitige Erkennung von Fehlern hilft Psalm, die Codequalität zu verbessern, die Wartbarkeit zu erhöhen und das Risiko von Laufzeitfehlern zu reduzieren.

Installation und Einrichtung von Psalm

Voraussetzungen

PHP: Version 7.1 oder höher (empfohlen wird die neueste stabile Version)

Composer: Für die Installation und Verwaltung von Abhängigkeiten

Installation

Installation via Composer:

Code:
          

composer require --dev vimeo/psalm
 

Initialisierung im Projekt:

Code:
          

./vendor/bin/psalm --init
 

Dies erstellt eine psalm.xml-Konfigurationsdatei im Projektverzeichnis.

Hauptfunktionen Psalm

Statische Codeanalyse: Detaillierte Analyse des Codes ohne Ausführung.

Typprüfung: Erkennung von Typfehlern, Inkonsistenzen und fehlenden Typdeklarationen.

Fehlererkennung: Aufspüren von potenziellem toten Code, ungenutzten Variablen und anderen Problemen.

Automatische Fehlerbehebung (Auto-Fixes): Psalm bietet Vorschläge zur automatischen Behebung vieler erkannter Probleme.

Baseline-Generierung: Erstellung einer Baseline, um bestehende Fehler zu ignorieren und sich auf neue Fehler zu konzentrieren.

Integration mit IDEs: Unterstützung für verschiedene IDEs wie PhpStorm und VS Code.

Erweiterbarkeit: Möglichkeit zur Definition eigener Regeln und Plugins.

Vorteile Psalm

Verbesserte Codequalität: Reduzierung von Fehlern und Erhöhung der Lesbarkeit.

Frühe Fehlererkennung: Vermeidung von Laufzeitfehlern durch statische Analyse.

Erhöhte Wartbarkeit: Vereinfachung der Wartung und des Refactorings von Code.

Bessere Zusammenarbeit: Einheitliche Codebasis durch Einhaltung von Coding Standards.

Zeitersparnis: Reduzierung der Zeit für Debugging und Testen.

Konfiguration und Verwendung von Psalm

Konfigurationsdatei (psalm.xml)

Die psalm.xml-Datei enthält alle Konfigurationseinstellungen für Psalm. Hier ein Beispiel:

Code:
          

<?xml version="1.0"?>
<psalm
   errorLevel="1"
   xmlns="https://getpsalm.org/schema/config"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
   autoloader="vendor/autoload.php"
   cacheDirectory=".psalm_cache"
>
   <projectFiles>
       <directory name="src"/>
       <ignoreFiles>
           <directory name="vendor"/>
       </ignoreFiles>
   </projectFiles>
   <issueHandlers>
       <MissingReturnType>
           <errorLevel type="suppress"/>
       </MissingReturnType>
   </issueHandlers>
</psalm>

Wichtige Konfigurationsparameter

errorLevel: Definiert den Grad der Strenge für die Fehleranalyse (1-4, wobei 1 am strengsten ist).

autoloader: Pfad zum Autoloader des Projekts.

cacheDirectory: Verzeichnis für den Cache, um die Analysegeschwindigkeit zu erhöhen.

<projectFiles>: Definiert die zu analysierenden Dateien und Verzeichnisse.

<issueHandlers>: Ermöglicht die Konfiguration, wie bestimmte Fehlertypen behandelt werden sollen.

Psalm ausführen

Analyse des Projekts:

Code:
          

./vendor/bin/psalm
 

Dies führt die Analyse durch und zeigt alle gefundenen Fehler und Warnungen an.

Erstellung einer Baseline:

Code:
          

./vendor/bin/psalm --baseline=baseline.xml
 

Erstellt eine Baseline-Datei, um bestehende Fehler zu ignorieren. Diese Datei kann später verwendet werden, um sich auf neue Fehler zu konzentrieren.

Automatische Fehlerbehebung:

Code:
          

./vendor/bin/psalm --alter
 

Psalm versucht, gefundene Fehler automatisch zu beheben. Achtung: Änderungen sollten vor der Übernahme geprüft werden.

Psalm in CI/CD-Pipelines integrieren

Psalm lässt sich nahtlos in CI/CD-Pipelines integrieren, um die Codequalität bei jedem Commit oder Pull Request zu überprüfen. Hier ist ein Beispiel für eine GitLab CI-Konfiguration:

Code:
          

stages:
 - analyze

psalm:
 stage: analyze
 image: composer:latest
 before_script:
   - composer install --no-interaction
 script:
   - ./vendor/bin/psalm --no-cache
 artifacts:
   reports:
     codequality: gl-code-quality-report.json
 

Schritte zur Integration

Definiere eine Analyse-Stage: In deiner CI/CD-Konfiguration.

Installiere Abhängigkeiten: Stelle sicher, dass Composer-Abhängigkeiten installiert sind.

Führe Psalm aus: Verwende den ./vendor/bin/psalm-Befehl.

Konfiguriere Artefakte: Speichere den Bericht, um ihn in der CI/CD-Pipeline anzuzeigen.

Tipps und Best Practices Psalm

Kontinuierliche Integration: Integriere Psalm in deine CI/CD-Pipeline, um die Codequalität kontinuierlich zu überwachen.

Baseline verwenden: Verwende eine Baseline, um dich auf neue Fehler zu konzentrieren und die Codebasis schrittweise zu verbessern.

Typdeklarationen verwenden: Nutze Typdeklarationen (Return Types, Parameter Types), um die Genauigkeit der Analyse zu erhöhen.

Fehlerbehebung automatisieren: Nutze die automatischen Fehlerbehebungsfunktionen von Psalm, um Fehler schnell zu beheben.

Regelmäßige Updates: Halte Psalm auf dem neuesten Stand, um von neuen Funktionen und Fehlerbehebungen zu profitieren.

Individuelle Konfiguration: Passe die psalm.xml-Datei an deine Projektanforderungen an, um die Analyse zu optimieren.

Häufig gestellte Fragen (FAQ)

Was ist der Unterschied zwischen Psalm und PHPStan?

Psalm und PHPStan sind beides statische Analysewerkzeuge für PHP, aber sie unterscheiden sich in ihrer Herangehensweise und Funktionalität. Psalm bietet automatische Fehlerbehebungsfunktionen und eine etwas andere Fehlererkennung. PHPStan hingegen konzentriert sich stärker auf Performance und detailliertere Analysen in bestimmten Bereichen.

Kann Psalm in bestehende Projekte integriert werden?

Ja, Psalm kann in bestehende Projekte integriert werden. Es wird empfohlen, mit einer Baseline zu beginnen, um sich auf neue Fehler zu konzentrieren und die Codebasis schrittweise zu verbessern.

Wie hilft Psalm bei der Codequalität?

Psalm hilft, die Codequalität zu verbessern, indem es Fehler frühzeitig erkennt, Typfehler aufdeckt, toten Code identifiziert und automatische Fehlerbehebungen anbietet. Dies führt zu lesbarerem, wartbarerem und robusterem Code.

Welche PHP-Versionen werden von Psalm unterstützt?

Psalm unterstützt PHP-Versionen ab 7.1. Es wird empfohlen, die neueste stabile PHP-Version zu verwenden, um die beste Kompatibilität und Leistung zu gewährleisten.

Wie kann ich Psalm in meiner IDE verwenden?

Es gibt Plugins für verschiedene IDEs wie PhpStorm und VS Code, die die Integration von Psalm erleichtern. Diese Plugins ermöglichen die Ausführung von Psalm direkt in der IDE und zeigen Fehler und Warnungen in Echtzeit an.

Fazit

Psalm ist ein unverzichtbares Werkzeug für PHP-Entwickler, die die Qualität ihres Codes verbessern möchten. Durch die statische Analyse, die automatischen Fehlerbehebungsfunktionen und die nahtlose Integration in CI/CD-Pipelines hilft Psalm, Fehler frühzeitig zu erkennen und zu beheben, die Wartbarkeit zu erhöhen und die Zusammenarbeit im Team zu verbessern. Es ermöglicht eine schnellere Markteinführung, reduziert Fehler und sorgt für eine konsistente Umgebung über alle Phasen des Softwareentwicklungszyklus.

Weiterführende Ressourcen

Offizielle Psalm Dokumentation: psalm.dev

Psalm auf GitHub: github.com/vimeo/psalm

CYPRESS.IO Ambassador und IT Consultant für QA Engenieering und Qualität in PHP Projekten.

Erreichen Sie unsere PHP Consultant Spezialisten

Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.