Das ist neu in PhpStorm 2021.2

PhpStorm 2021.2 ist ein großes Update, das vorläufige Unterstützung für PHP-Generics, Enums aus PHP 8.1, einzeilige Array-Shape-Annotationen, verbesserte automatische PHP-Formatierung sowie neue Inspektionen und Refactorings bietet.

Generics für PHP

PHP bietet derzeit auf der Sprachebene keine Unterstützung für Generics, aber ihre Verwendung über Annotationen ist bereits weit verbreitet. Bei der Arbeit mit Collections, Containern und Factories sowie in weiteren Anwendungsfällen machen Generics den Code sicherer und vorhersehbarer.

Generics für PHP

Wir haben die Unterstützung für Generics über die Annotation @template umgesetzt. Dadurch wird die Arbeit mit Collections in vielen Fällen einfacher, da die Vorschläge Elemente des erwarteten Typs enthalten.

Bei Factory-Patterns können Sie jetzt die Annotation class-string<T> verwenden, um bessere Completion-Vorschläge zu erhalten.

Diese vorläufige Generics-Unterstützung ist noch nicht komplett und weist bekannte Einschränkungen auf. Weitere Informationen dazu finden Sie in diesem Blogartikel.

Enums aus PHP 8.1

Die neue Version 8.1 des PHP-Interpreters soll erst Ende 2021 erscheinen. Aber wie immer wollen wir frühzeitig mit der Einführung der Unterstützung beginnen.

Enums gehören zu den am sehnlichsten erwarteten Funktionen von PHP 8.1.

Mit PhpStorm 2021.2 können Sie Enums ab sofort verwenden. Die IDE bietet Completion-Vorschläge und Validierung, um Sie vor einer falschen Verwendung zu bewahren.

Ein PHP-Enum enthält eine Reihe von Fällen, kann Methoden haben und als Typhinweis verwendet werden – in all diesen Fällen bietet PhpStorm Fehlerhervorhebungen und passende Vorschläge, um Ihnen Zeit zu sparen.

Backed Enums

Enum-Fälle können skalare Äquivalente haben. Dies ist nützlich, wenn Enums in einem Datenspeicher gespeichert werden sollen. Solche Enums werden als „Backed Enums“ bezeichnet.

Mit einem Quick-Fix können Sie einem Backed Enum eine Skalartypdeklaration hinzufügen.

Enums sind auch mit anderen Funktionen wie Bedingungen und Match-Ausdrücken gut zu verwenden.

Weitere Informationen

Array-Shapes

Array-Shapes

Wenn Ihr Code objektartige Arrays enthält, können Sie jetzt ihre Struktur mit dieser PHPDoc-Annotation definieren: array{Schlüssel: Typ, Schlüssel: Typ, ...}.

PhpStorm bietet Code-Completion für derart annotierte Arrays, damit Sie weniger Zeit mit Routineeingaben verbringen und Fehler vermeiden können.

Die Unterstützung ist auf einzeilige Array-Shape-Definitionen beschränkt. Bei größeren Strukturen ist es oft besser, echte Objekte und Klassen zu verwenden.

Verbessertes „Extract Method“-Refactoring

Eine der am häufigsten verwendeten PhpStorm-Refactorings, Extract Method, ist jetzt noch besser geworden.

Sie können damit große Methoden in kleinere Einheiten aufteilen und Code-Duplizierung beseitigen.

Um dieses Refactoring zu verwenden, wählen Sie einen beliebigen Codeabschnitt aus und drücken Sie ⌘⌥M (Cmd+Alt+M / Strg+Alt+M).

Refactoring von dupliziertem Code

PhpStorm bietet eine Inspektion namens Duplicated code fragment. Diese hebt alle Codeabschnitte hervor, die sehr ähnlich sind. Formatierung, Variablennamen und Anweisungsreihenfolge können unterschiedlich sein, solange das Endergebnis gleich ist.

Die Inspektion markiert die ersten Zeilen von duplizierten Fragmenten. Sie können solche Codeabschnitte schnell refaktorieren, indem Sie in der markierten Zeile Alt+Enter drücken und im Quick-Fix für duplizierten Code das Refactoring Extract Method auswählen.

PhpStorm kann beim Refactoring auch kleinere duplizierte Codefragmente im aktuellen Gültigkeitsbereich (Methode, Klasse oder Datei) finden. Wählen Sie ein Codefragment aus und rufen Sie dann das Refactoring mit ⌘⌥M (Cmd+Alt+M / Strg+Alt+M) auf. Im unteren Bereich des Dialogs finden Sie das Kontrollkästchen Review and replace duplicates (Duplikate prüfen und ersetzen).

Neue, intelligente Auswahl von Codefragmenten

Neue, intelligente Auswahl von Codefragmenten

Sie können das Refactoring Extract Method auch ohne Codeauswahl aufrufen. In diesem Fall schlägt PhpStorm mögliche Codefragmente vor. Die Vorschläge sind gefiltert und enthalten nur Segmente, bei denen ein sinnvolles Refactoring möglich ist.

Verbesserungen beim Erweitern der Auswahl

Sie wissen wahrscheinlich bereits, dass Sie mit der Aktion Expand / Shrink selection (⌥+Auf / ⌥+Ab bzw. Strg+W / Strg+Umschalt+W) einen Codeabschnitt auswählen können. Dies ist eine der schnellsten Möglichkeiten, Code für das Refactoring auszuwählen.

Diese Version führt eine kleine, aber nützliche Neuerung ein: die Möglichkeit, Blöcke ohne geschweifte Klammern auszuwählen.

Das Refactoring mit Extract Method enthält noch weitere Verbesserungen! Die Details dazu finden Sie in diesem Blogeintrag.

Inspektionen und Quick-Fixes

Jedes Release enthält eine Reihe von Inspektionen, die Ihnen bei der Fehlersuche und -behebung Zeit sparen. Sie können bei jedem hervorgehobenen Codeabschnitt in PhpStorm Alt+Enter drücken, um einen Quick-Fix auszuwählen und anzuwenden.

Condition can be replaced with `?->`

Condition can be replaced with `?->`

Ersetzen Sie unnötige Nullprüfungen durch den neuen sicheren Operator von PHP 8. Drücken Sie Alt+Enter, um die Umwandlung durchzuführen.

Use constant from a class where it is defined

Use constant from a class where it is defined

PhpStorm hebt Konstanten hervor, auf die Sie über eine Unterklasse oder eine Unterschnittstelle zugreifen statt über die Entität, in der die Konstante definiert ist. Mit einem Quick-Fix (Alt+Enter) können Sie den verwendeten Namen durch den Namen ersetzen, in dem die Konstante definiert ist.

Redundant conditions in logical expressions

Redundant conditions in logical expressions

PhpStorm wertet nun Teile von Bedingungen aus, um Redundanzen zu identifizieren. Dies kann nützlich sein, wenn die Prüfungen nicht so offensichtlich sind, dass auf den ersten Blick zu erkennen ist, ob sie überflüssig sind.

Inspektionsgruppe „Refactoring Opportunities“

Wir haben in der PHP-Kategorie unter Settings / Preferences | Editor | Inspections eine neue Inspektionsgruppe hinzugefügt.

Diese Gruppe enthält Inspektionen, die Ihnen helfen können, gute Refactoring-Kandidaten zu identifizieren. Diese Inspektionen sind standardmäßig deaktiviert, aber selbst im deaktivierten Zustand sehen Sie ein zusätzliches Randleistensymbol neben dem identifizierten Code (statt einer Unterstreichung im Editor).

Wenn Sie auf das Randleistensymbol klicken, wird das vorgeschlagene Refactoring aufgerufen.

Diese Inspektionen kombinieren verschiedene Kennzahlen für Codequalität: zyklomatische Komplexität, Verschachtelungstiefe, Anzahl der verwendeten Variablen, Gesamtzahl der Zeilen und vieles mehr.

Die Liste der verwendeten Metriken finden Sie in der Beschreibung der jeweiligen Inspektion.

Weitere Informationen

IDE

Tests vor dem Commit ausführen

Tests vor dem Commit ausführen

Wir haben die Liste der möglichen Pre-Commit-Aktionen um die Ausführung von Tests erweitert. Kreuzen Sie das Kontrollkästchen Run Tests an und wählen Sie die auszuführende Konfiguration aus. Es ist sinnvoll, den Code zu überprüfen, bevor er im VCS landet.

Neu ist auch die Möglichkeit, die Optionen Analyze code und Cleanup individuell anzupassen. Klicken Sie dazu auf Choose profile neben dem entsprechenden Eintrag.

Aktionen beim Speichern

Aktionen beim Speichern

Wir haben eine neue Konfigurationsseite unter Preferences / Settings | Tools | Actions on Save hinzugefügt.

Dort finden Sie eine Liste von Aktionen, die mit Strg+S oder bei der automatischen Speicherung ausgelöst werden können. Zu den hier verfügbaren Aktionen zählen die Codeprüfung, Neuformatierung, Codebereinigung, Bereitstellung und vieles mehr.

Einheitliche Diff-Anzeige

Einheitliche Diff-Anzeige

PhpStorm zeigt bei einem Diff-Vergleich die Unterschiede zwischen ursprünglicher und geänderter Datei standardmäßig im Editor an – unabhängig davon, wie Sie die Aktion Show Diff aufgerufen haben. Wenn Sie die Änderungen lieber in einem separaten Fenster betrachten möchten, können Sie die Datei mit der Maus aus dem Editor herausziehen.

Textsuche im lokalen Verlauf

Textsuche im lokalen Verlauf

Local History war bisher schon der stille Held vieler Entwickler*innen. Jetzt wurde die Funktion weiter verbessert: Um einen gesuchten Text in den lokalen Revisionen schnell zu finden, können Sie das Suchfeld im Dialog Local History verwenden.

Textsuche im lokalen Verlauf

GPG-Signatur

PhpStorm 2021.2 bietet eine neue Möglichkeit, Ihre Commits zu schützen. Sie können jetzt die Git-Funktion zum Signieren Ihrer Commits mit GPG aktivieren. Klicken Sie dazu unter Settings | Version Control | Git auf Configure GPG Key und treffen Sie dann eine Auswahl aus der Dropdown-Liste.

Lokalisierte Bedienoberfläche

Bedienoberfläche in Chinesisch, Japanisch und Koreanisch lokalisiert

Ab dieser Version können Sie PhpStorm mit einer lückenlos lokalisierten Bedienoberfläche in Chinesisch, Koreanisch und Japanisch verwenden. Die Lokalisierungen sind als separate Sprachpaket-Plugins verfügbar, die einfach in Ihrer IDE installiert werden können*. Mehr als 1,5 Millionen Benutzer*innen haben bereits begonnen, die teilweise lokalisierten EAP-Versionen unserer Sprachpakete zu verwenden. Jetzt können Sie eine vollständige Lokalisierung genießen!

Web-Technologien

Alle neuen Funktionen und Verbesserungen von WebStorm 2021.2 sind auch in PhpStorm 2021.2 verfügbar – entweder als integrierte Funktionen oder als kostenlose Plugins im Plugin-Marketplace.

Umbenennen-Refactoring für useState-Hooks in React

Umbenennen-Refactoring für useState-Hooks in React

PhpStorm kann jetzt useState-Werte und -Funktionen gleichzeitig umbenennen. Legen Sie die Einfügemarke auf einen State-Wert und drücken Sie ⇧F6/Umschalt+F6 oder wählen Sie im Rechtsklick-Kontextmenü die Option Refactor | Rename.

Autoimport für require()

Autoimport für require()

Wenn Sie CommonJS-Module einsetzen, kann PhpStorm jetzt bei Verwendung der Code-Completion fehlende Importanweisungen hinzufügen.

Datenbank-Tools

Schauen Sie sich auch die Neuerungen in DataGrip 2021.2 an – alle neuen Funktionen sind auch in PhpStorm verfügbar. Einige Beispiele:

DDL-Datenquelle

DDL-Datenquelle

Sie können jetzt eine DDL-Datenquelle basierend auf einer echten Datenquelle generieren. Auf dem Datenträger werden DDL-Dateien erstellt, und die neue Datenquelle basiert auf diesen Dateien. Auf diese Weise haben Sie jederzeit die Möglichkeit, diese Dateien neu zu generieren und die DDL-Datenquelle zu aktualisieren.

Completion von Feldern und Operatoren bei MongoDB

Completion von Feldern und Operatoren bei MongoDB

Unsere Code-Completion ist jetzt sogar in der MongoDB-Konsole angekommen.

Weitere Verbesserungen

Hier sind einige der vielen weiteren Neuerungen und Verbesserungen, die wir in PhpStorm 2021.2 umgesetzt haben:

  • Vorschau von HTML- und PHP-Dateien in einem Browser mithilfe des integrierten Webservers von PhpStorm. PhpStorm kann jetzt geöffnete Seiten beim Speichern automatisch neu laden.
  • Toolfenster lassen sich jetzt noch einfacher neu anordnen. Bewegen Sie den Mauszeiger auf den oberen Rand des Toolfensters, das Sie verschieben möchten, und ziehen Sie es an die gewünschte Stelle.
  • PhpStorm bereinigt automatisch alle Cache- und Log-Verzeichnisse, die vor mehr als 180 Tagen zuletzt aktualisiert wurden. Sie können die Bereinigung manuell über Help | Delete Leftover IDE Directories starten.
  • Das Terminal hat neue Einstelloptionen erhalten, um das Cursorsymbol auszuwählen und die Option-Taste als Meta-Taste zu verwenden.
  • Die neue Seite Advanced settings in Preferences bietet Optionen für die Feinabstimmung von PhpStorm.
  • Bei großen Dateisammlungen wurde die Geschwindigkeit von FTP-Uploads erheblich verbessert.
  • Bei dirname() wird der Parameter „levels“ unterstützt.
  • Alle offenen Probleme mit der PHP-Formatierung wurden behoben.