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