Das ist neu in PhpStorm 2022.1

PhpStorm 2022.1 ist eine neue Hauptversion, die Unterstützung für mehrzeilige und verschachtelte Array-Shapes, ein In-Place-Refactoring für das Extrahieren von Methoden, eine verbesserte Unterstützung für Blade-Templates, WordPress und PHP-Generics und noch einiges mehr bietet.

Mehrzeilige und verschachtelte Array-Shapes

Array-Shapes in PHPDoc-Blöcken wird seit PhpStorm 2021.2 unterstützt. Es wurden jedoch nur einzeilige und unverschachtelte Annotationen unterstützt.

PhpStorm 2022.1 schafft jetzt Abhilfe: Mehrzeilige und verschachtelte Array-Shapes werden jetzt sowohl in PHPDoc-Annotationen als auch in #[ArrayShape]-Attributen vollständig unterstützt!

Das Hinzufügen von Array-Shape-Annotationen ermöglicht Code-Completion für die Schlüssel sowie die Erkennung von Wertetypen bei einfachen Array-Datenstrukturen oder objektartigen Arrays. Sie können in PhpStorm sowohl die PHPDoc- als auch die Attribut-Syntax verwenden, je nachdem, was Sie bevorzugen. Die Syntax wird für Rückgabetypen und Parametertypen unterstützt.

Extract Method als In-Place-Refactoring

Extract Method gehört zu den meistverwendeten Refactorings in PhpStorm. Um Ihren Code zu vereinfachen und eine neue Methode zu erstellen, markieren Sie einfach den entsprechenden Codeabschnitt und drücken Sie ⌘⌥M (Cmd+Alt+M / Strg+Alt+M).

Bisher wurde dadurch ein Dialog geöffnet, in dem das Refactoring konfiguriert werden konnte. Niemand mag jedoch Popups, und jetzt können Sie in vielen Fällen zum Extrahieren einer Methode einfach das In-Place-Refactoring verwenden.

Es wird kein Dialog angezeigt, und die neue Methode (oder Funktion) wird sofort im Editor erstellt. Der Cursor wird so platziert, dass Sie den Namen der neuen Methode bearbeiten können.

Verbesserte Unterstützung für Laravel-Blade-Templates

Bisher behandelte PhpStorm jeden Codeblock in Blade Templates als eigenständigen Gültigkeitsbereich. Dies führte häufig zu Problemen bei der Code-Completion und mit Code-Insights.

In PhpStorm 2022.1 haben wir den Umgang mit Blade-Templates erheblich überarbeitet. Dadurch erhalten Sie eine deutlich verbesserte Code-Completion in .blade.php-Dateien.

Wir haben außerdem viele weitere Probleme behoben, die in Blade-Templates die Code-Completion und die Formatierung betrafen. Mehr erfahren.

Verbesserungen für WordPress

Unterstützung für dynamische Pfade mit get_template_directory_uri()

In PhpStorm können Sie mit gedrückter /Strg-Taste auf einen Dateipfad klicken, um die entsprechende Datei im Editor zu öffnen. Das hat bei dynamischen Pfaden in WordPress-Code nicht funktioniert, wenn der Pfad mit WordPress-Funktionen generiert wurde.

In dieser Version unterstützen wir die Funktion get_template_directory_uri() in Pfaden. Die Unterstützung wird in den nächsten Updates auf weitere Funktionen erweitert.

Vom Hook-Aufruf zu Registrierungen navigieren

Das Hook-System von WordPress ist sehr leistungsfähig, aber bisher es war nicht möglich, vom Aufruf eines Hooks zur Deklaration des Handlers zu springen.

Jetzt finden Sie links neben den Aufrufen ein entsprechendes Randleistensymbol. Klicken Sie darauf, um die Liste der Hook-Verwendungen anzuzeigen, einschließlich der Registrierung und anderer Aufrufe.

Neue, erweiterte Funktionen für PHP-Metadaten

Wie Sie vielleicht wissen, nutzt PhpStorm nicht nur die integrierten Codeanalysefunktionen, sondern greift auch auf externe Informationen über den Code zu. Diese Informationen holt sich die IDE aus der Datei .phpstorm.meta.php. Sie können diese Datei verwenden, um PhpStorm mehr Informationen über Ihren Codebestand zu geben und dadurch eine bessere Completion zu erhalten.

Unterstützung für magische Methoden __call und __callStatic

Bei Verwendung der magischen Methoden _call oder _callStatic mussten sie bisher auf die Code-Completion für die Methoden verzichten, da sie nicht definiert sind.

In dieser Version können Sie den entsprechenden Metadateneintrag hinzufügen, um Auto-Completion für solche Aufrufe zu erhalten.

Sie haben sogar die Möglichkeit, dynamische Aufrufe automatisch zu verarbeiten, indem Sie aus einem Parameterwert einen Methodennamen beziehen.

Unterstützung von Union-Typen

Sie können Union-Typen jetzt als @|MyClass in .phpstorm.meta.php angeben – dies kann die Programmierunterstützung für Mocks verbessern.

Weitere Informationen zu anderen Metadaten-Features finden Sie in der Dokumentation.

Verbesserte Unterstützung von Annotationen und Generics

Wir haben die Unterstützung von PhpStorm für annotationsbasierte Generics weiter verbessert. Diese Version berücksichtigt einige weitere Fälle, zum Beispiel:

  • @psalm-import-type, @phpstan-import-type
  • @psalm-trace, @phpstan-trace
  • Generics in @method-Tags

Neuer Composer-Projektassistent

Jetzt können Sie bei der Erstellung eines neuen, leeren Projekts automatisch eine composer.json-Datei für das Projekt generieren und die benötigten Abhängigkeiten bereitstellen. Nachdem das Projekt erstellt wurde, fordert PhpStorm Sie auf, die Abhängigkeiten zu installieren.

Benutzererfahrung

Neues Notifications-Toolfenster

Wir haben das Event Log durch das neue Toolfenster Notifications ersetzt. Dies verbessert den Überblick über die IDE-Benachrichtigungen und verringert die Gefahr, wichtige Informationen zu verpassen. Standardmäßig befindet sich das neue Toolfenster in der rechten unteren Ecke des IDE-Fensters. Alle Benachrichtigungen gehören einer von zwei Kategorien an: Suggestions (Empfehlungen) und Timeline (Zeitleiste).

Überarbeiteter Dialog für strukturelles Suchen und Ersetzen

Sie können die Funktion Structural Search and Replace im Hauptmenü unter Edit | Find | Search Structurally aufrufen.

Der Dialog Structural Search and Replace wurde überarbeitet und enthält jetzt eine Liste aller Vorlagen, um die Navigation zwischen ihnen zu vereinfachen.

Wir haben auch ein Anheften-Symbol in der oberen rechten Ecke des Dialogs Structural Search and Replace hinzugefügt.

Gleichmäßige Tab-Breite

Jetzt haben Sie die Möglichkeit, den Arbeitsbereich so auf die Editor-Tabs aufzuteilen, dass diese die gleiche Breite haben. Aktivieren Sie dazu die Option Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.

UML-Diagramm in andere Formate exportieren

UML-Diagramme können jetzt in den Formaten yEd (.graphml), JGraph (.drawio), Graphviz (.dot), Mermaid (.md), Plantuml und IntelliJ IDEA (.uml) exportiert werden, um die Kompatibilität mit Drittanbieter-Tools zu gewährleisten.

Markdown-Verbesserungen

Ausführung von Befehlen in Markdown-Dateien

README-Dateien beschreiben oft die Schritte, die für die Ausführung einer Anwendung erforderlich sind, und listen dabei die Befehle auf, die Sie ausführen müssen. Mit PhpStorm 2022.1 können Sie diese Befehle direkt aus der Markdown-Datei heraus ausführen. Klicken Sie einfach auf das Ausführen-Symbol in der Randleiste links neben dem Befehl.

Codeabschnitt in Markdown kopieren

Wir haben außerdem eine neue Aktion Copy code snippet für Markdown-Blöcke hinzugefügt, mit der Sie den Inhalt des Blocks mit einem Klick in die Zwischenablage kopieren können.

Schwebende Symbolleiste des Markdown-Editors aktualisiert

Um das Formatieren von Markdown-Dateien zu erleichtern, haben wir die schwebende Symbolleiste überarbeitet, die angezeigt wird, wenn Sie einen Textabschnitt auswählen. Neben dem neuen Design ermöglicht die Symbolleiste jetzt auch die Erstellung von Listen und bietet ein Auswahlmenü für Überschriftenstile.

Die Symbolleiste kann angepasst werden, sodass Sie die Optionen aufnehmen können, die Sie benötigen. Die entsprechende Einstellung finden Sie unter Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.

VCS

Annotate with Git Blame aktualisiert

Wir haben die Funktionalität von Annotate with Git Blame verbessert, um die Untersuchung von Änderungen zu erleichtern. Die IDE färbt den Unterschied in den Zeilen direkt im Editor ein, wenn sich die Maus über einer Annotation befindet, und beim Anklicken wird das Toolfenster Git Log geöffnet.

Änderungsvorschläge in Pull-Request-Kommentaren

PhpStorm erleichtert Ihnen das Arbeiten mit Änderungsvorschlägen, da Sie Änderungen jetzt direkt in der IDE lokal anwenden oder als Commit festschreiben können.

Aktualisierter Commit-Details-Bereich im Git-Toolfenster

Der Fensterbereich Commit Details bietet jetzt Informationen zu GPG-Signaturen und Build-Status. Zuvor wurden diese Daten nur als Spalte im Git-Log angezeigt.

Git File History: neue Bedienoberfläche ohne Index

Die neue Bedienoberfläche für das Toolfenster Git File History ist jetzt unabhängig vom Indizierungsprozess. Die Daten werden in einer neuen Oberfläche dargestellt, auch wenn der Logindex ausgeschaltet ist.

Dies waren die wichtigsten Neuerungen in diesem Release. Wenn Sie einen genaueren Blick auf die Details und auf weitere coole Verbesserungen werfen möchten, lesen Sie bitte die Release-Ankündigung im PhpStorm-Blog.