Das ist neu in PhpStorm 2022.3

PhpStorm 2022.3 ist ein großes Update: Zu den vielen Neuerungen zählen eine Vorschau auf die neue Bedienoberfläche, PHP-8.2-Unterstützung, Code Vision für PHP, Vorschau für Quick-Fixes, ParaTest-Unterstützung, PHPDoc-Rendering und Redis in Datenbanken-Tools.

Neue UI Preview

Unsere nagelneue Bedienoberfläche steht jetzt für alle Interessierten zum Ausprobieren bereit. Da sie sich noch in der Beta/Preview-Phase befindet, ist sie standardmäßig deaktiviert.

Sie können unter Settings/Preferences | Appearance & Behavior | New UI Preview zur neuen Bedienoberfläche wechseln.

Die neue Bedienoberfläche ist übersichtlicher und schneller und reduziert die Anzahl der Ablenkungen. Gleichzeitig können Sie die meisten Dinge in der gewohnten Weise erledigen.

Benutzererfahrung

Dieses Release enthält zahlreiche zusätzliche visuelle Verbesserungen. Im Folgenden stellen wir Ihnen einige der interessantesten vor.

Code Vision

Im Editor werden Ihnen direkt neben dem PHP-Code zusätzliche Informationen zu PHP-Symbolen – Klassen, Traits, Schnittstellen, Methoden oder Funktionen – angezeigt.

Auch die Anzahl der Verwendungen können Sie ablesen, ohne erst auf ein Symbol klicken zu müssen.

Für Klassen und Schnittstellen wird die Anzahl der Unterklassen bzw. Implementierungen angezeigt.

Sie erhalten zudem Git-basierte Informationen darüber, wer die meisten Änderungen an einem bestimmten Codeabschnitt vorgenommen hat, sodass Sie mühelos erkennen können, wer für den Code zuständig ist und am meisten darüber wissen dürfte.

Quick-Fix-Vorschau

Durch Drücken von Alt+Enter lassen sich einige Codeprobleme automatisch beheben.

Jetzt haben Sie die Möglichkeit, vor dem Anwenden eines vorgeschlagenen Quick-Fixes oder einer Kontextaktion in einer Vorschau zu überprüfen, welche Änderungen an Ihrem Code vorgenommen werden sollen.

PHPDoc-Rendering

In PhpStorm 2022.3 können Sie die Darstellung von PHPDoc-Blöcken mit einer Option ändern, die ein ansprechenderes Rendering und eine verbesserte HTML-Formatierungsunterstützung aktiviert. Dadurch wird das Lesen von ausführlich kommentiertem Code angenehmer und einfacher.

Um die neue gerenderte Ansicht ein- oder auszuschalten, klicken Sie auf das Randleistensymbol Randleistensymbol der Rendering-Ansicht neben einem beliebigen PHPDoc-Abschnitt.

Um das Rendering für alle PHPDoc-Kommentare zu aktivieren, klicken Sie mit der rechten Maustaste auf das Randleistensymbol und wählen Sie Render All Doc Comments.

Verbesserte Schnelldokumentation

Wenn Sie Strg+Q drücken, während die Einfügemarke auf einer Funktion, Klasse oder Methode liegt, zeigt PhpStorm die Dokumentation direkt im Editor an.

Dieses Popup wurde erheblich überarbeitet. Jetzt brauchen Sie nicht mehr zum Browser zu wechseln und dort nach der Dokumentation zu suchen – Sie finden alles direkt in Ihrer IDE.

PHP 8.2

PhpStorm 2022.3 bietet vollständige Unterstützung für PHP 8.2. Die meisten Änderungen in der IDE fügen sich organisch in Ihren PhpStorm-Workflow ein, daher erwähnen wir nur die Neuerungen, die Sie unbedingt kennen sollten.

Readonly-Klassen

Eine Readonly-Klasse ist eine schnelle Möglichkeit, eine Klasse zu deklarieren, die nur schreibgeschützte Eigenschaften hat. Sie können diese Klassen zur zusätzlichen Absicherung der Datenintegrität verwenden.

PhpStorm bietet folgende Unterstützung für Readonly-Klassen:

  • Quick-Fix zum Konvertieren einer Klasse mit Readonly-Eigenschaften in eine Readonly-Klasse.
  • Eine Inspektion, die sicherstellt, dass Readonly-Klassen nur Readonly-Unterklassen haben.
  • Erkennung von redundanten Readonly-Eigenschaften in Readonly-Klassen.
  • Prüfungen auf unzulässige statische und dynamische Eigenschaften in Readonly-Klassen.

Veraltete dynamische Eigenschaften

Der Zugriff auf nicht existierende Eigenschaften löst in PHP 8.2 eine Deprecation-Warnung aus.

PhpStorm hebt diese Verwendungen hervor und bietet Quick-Fixes zur Behebung des Fehlers an, wobei entweder die Eigenschaft hinzugefügt oder das Attribut #[AllowDynamicProperties] verwendet wird.

Typsystem-Verbesserungen

PHP 8.2 bietet Unterstützung für disjunktive Normalformtypen sowie separate null-, true- und false-Typen. All dies wird jetzt auch in PhpStorm unterstützt.

Weitere Deprecations

PHP 8.2 führt einige weitere Deprecations ein, und PhpStorm bietet Ihnen entsprechende Inspektionen und Quick-Fixes, um sie zu erkennen und Ihren Code zu aktualisieren.

Veraltete String-Interpolation mit ${}

Zur Verwendung einer Variablen innerhalb einer Zeichenfolge gab es bisher drei Möglichkeiten. Eine davon ist jetzt als veraltet markiert und wird in Zukunft entfernt.

PhpStorm hebt die Vorkommen hervor, und Sie können den Code per Alt+Enter mit einem Quick-Fix aktualisieren.

Teilweise unterstützte Callables als veraltet gekennzeichnet

Mehrere Methoden zum Aufrufen von Funktionen sind in PHP 8.2 als veraltet gekennzeichnet worden.

PhpStorm hebt ungültigen Code hervor und bietet per Alt+Enter einen Quick-Fix zum Upgrade Ihres Codes an.

PhpStorm kann Ihren gesamten Codebestand in einem Zug scannen, um alle potenziellen Probleme zu erkennen. Gehen Sie zu Code | Analyze Code | Run Inspection by Name. Suchen Sie zum Beispiel nach „dynamic property“, und PhpStorm kümmert sich um den Rest.

Datenbanken: Redis-Unterstützung

Wir haben eine erste Iteration der lang erwarteten Redis-Unterstützung umgesetzt.

Debugging

Wenn Sie beim Konfigurieren von Xdebug auf Probleme stoßen, können Sie in PhpStorm Folgendes unternehmen, um dem Problem auf den Grund zu gehen.

Ausgabe von phpinfo() validieren

Fügen Sie einen phpinfo()-Aufruf in Ihr PHP-Skript oder Ihre Seite ein und kopieren Sie aus dem Browser die Ausgabe der Funktion. Rufen Sie dann Run / Web Server Debug Validation auf. Es wird ein Dialog angezeigt, in den Sie die phpinfo()-Ausgabe aus dem vorherigen Schritt einfügen können.

PhpStorm analysiert die Serverkonfiguration und erkennt die häufigsten Probleme.

Serverkonfiguration mit einem Skript prüfen

If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.

Rückgabewerte mit Xdebug debuggen

Xdebug 3.2 verfügt über einen zusätzlichen Debugging-Schritt „Rückgabe aus Funktion“, mit dem Sie den Rückgabewert untersuchen können.

PhpStorm 2022.3 unterstützt diese neue Funktion. Um sie zu verwenden, drücken Sie auf Step Into, wenn Sie sich bei der letzten Anweisung in der Funktion befinden. Dadurch wird eine zusätzliche Variable unter Watches angezeigt.

Integration von PHP-Tools

Parallele Testausführung mit ParaTest

Die lang erwartete Unterstützung für parallele Tests in PhpStorm ist endlich verfügbar!

Um Tests parallel auszuführen, müssen Sie die Option Use Paratest in der Run-Konfiguration Ihrer Tests aktivieren, und der Pfad zur ParaTest-Binärdatei muss korrekt eingestellt sein. Wenn Sie ParaTest in Ihrer composer.json hinzugefügt haben, sollte der Pfad in etwa so aussehen: ./vendor/bin/paratest_for_phpstorm.

Externe Formatierung für PHP verwenden

Sie können jetzt in Preferences | PHP | Quality Tools ein externes Formatierungsmodul auswählen. You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.

Robo-Integration

A popular task runner for PHP, Robo, received the following extended support:

  • Wenn eine Robo-Klasse im Projekt vorhanden ist, steht ein spezielles Toolfenster namens Robo tasks zur Verfügung.
  • Eine Run-Konfiguration für die Ausführung von Robo-Tasks ist im Kontextmenü verfügbar und wird aus einer Robo-Methode aufgerufen.
  • Jede öffentliche Methode in einer Robo-Klasse hat ein Randleistensymbol für die jeweiligen Konfigurationen.

Prophecy-Unterstützung

If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.

Weitere Funktionen für PHP

Vorschau auf Datum/Uhrzeit-Formatierung

Sie müssen sich die date()-Formate nicht mehr merken oder sie nachschlagen. PhpStorm 2022.3 zeigt einen Tooltip mit einem Beispieldatum, wenn Sie die Maus auf eine Datumsformat-Zeichenfolge bewegen.

Beim Bearbeiten einer Datumsformat-Zeichenfolge erhalten Sie außerdem Completion-Vorschläge für alle Zeichen, die als Formatierungsparameter erkannt werden.

Unterstützung der Iteration über List-Array-Shapes

Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.

Das letzte fehlende Puzzlestück steuert jetzt PhpStorm 2022.3 bei: vollständige Code-Completion für Array-Shape-Elemente in Schleifen.

Settings Sync: neue Lösung zur Synchronisierung von Einstellungen

Wir haben zwei alte Synchronisierungslösungen (IDE Settings Sync und Settings Repository) zu der neuen Lösung Settings Sync zusammengeführt. Sie ermöglicht Ihnen die zuverlässige Synchronisierung von Einstellungen zwischen unterschiedlichen IDEs und Systemen.

Wenn Sie bisher keine Lösung zur Synchronisierung Ihrer Einstellungen verwendet haben, aber die neue Lösung ausprobieren möchten, können Sie sie über Settings / Preferences | Settings Sync | Enable Settings Sync aktivieren.

Docker

Docker-Programmdatei aus WSL ohne Docker Desktop

Sie können diese Verbindungsart unter Settings / Preferences | Build, Execution, Deployment | Docker einrichten.

Neue Kontextaktion Pull image

Rufen Sie die Kontextaktionen für den hervorgehobenen Image-Namen mit Alt-Enter auf und wählen Sie dann Pull Docker image, um ein benötigtes Image abzurufen, ohne es aus dem Dockerfile, docker-compose.yml oder gar aus Tests mit Testcontainern auszuführen.

Unterstützung für den Dateityp .dockerignore

Die IDE bietet jetzt Syntaxhervorhebung und Completion in .dockerignore-Dateien.

Heredoc-Unterstützung in Dockerfile-Dateien

Sie können mehrzeilige Skripte direkt in Ihren Dockerfiles verwenden.

Docker-Verbindungen aus Docker-Kontexten

Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.

HTTP-Client

Lange Anfragen im HTTP-Client formatieren

Der HTTP-Client bietet jetzt bessere Formatierungsoptionen für Anfragen mit langen URLs. Sie können auch die Kontextaktion Put query parameters on separate lines verwenden, um die Anfrage in mehrere Zeilen aufzuteilen.

Vorab-Skripte für Anfragen

Der HTTP-Client unterstützt jetzt Skriptblöcke, die vor einer Anfrage ausgeführt werden. Sie können zum Beispiel vor der Ausführung der Anfrage Daten generieren und sie mithilfe von Variablen an die Anfrage übergeben.

Neue APIs für JavaScript-Handler

PhpStorm stellt jetzt die Crypto-API bereit, die es ermöglicht, den md5- oder sha1-Hash einer HTTP-Anfrage zu berechnen.

Es stehen jetzt mehr Zufallsfunktionen zur Verfügung, was für schnelle API-Tests sehr praktisch ist.

Webentwicklung

Neue Projektvorlagen für Next.js und Vite

Neue Projektvorlagen für Next.js und Vite

Der New Project-Assistent auf dem Begrüßungsbildschirm von PhpStorm enthält jetzt Vorlagen für Vite und Next.js. Wir haben auch die Vue-Projektvorlage aktualisiert, um sicherzustellen, dass sie den neuesten Standards entspricht.

Code Vision für JavaScript und TypeScript

Code Vision für JavaScript und TypeScript

Code-Vision-Hinweise stehen jetzt auch für JavaScript und TypeScript zur Verfügung. Diese Hinweise helfen Ihnen, die Verwendung verschiedener Klassen, Methoden, Typ-Aliasnamen und Schnittstellen in Ihrem Code zu verfolgen.

Vue-Updates

Vue-Updates

PhpStorm kann sich jetzt um unaufgelöste Importe kümmern und Vorschläge für den Import von Vue-Komponenten unterbreiten. Die weiteren Verbesserungen umfassen die Unterstützung für die Destrukturierungssyntax für Props, ein verbessertes Verhalten bei der Code-Completion und der Typprüfung für Props von Vue-Bibliothekskomponenten sowie mehrere Fehlerkorrekturen für Nuxt 3.

Vitest-Unterstützung

Vitest-Unterstützung

PhpStorm now supports Vitest, a Vite-native unit test framework! Sie können Ihre Tests mit allen gewohnten Methoden – inklusive Randleistensymbole – ausführen, wiederholen und debuggen. Außerdem wird der Überwachungsmodus beim Szenario All tests standardmäßig aktiviert. Auch Snapshot-Tests und Coverage werden im Überwachungsmodus unterstützt, sodass Sie bei der Programmierung nahezu sofortiges Coverage-Feedback erhalten.


Dies waren die wichtigsten Änderungen in diesem Release – aber natürlich gibt es noch mehr. Die vollständige Liste der Verbesserungen in der neuen Version finden Sie in der Release-Ankündigung im PhpStorm-Blog.