Das ist neu in PhpStorm 2023.1

PhpStorm 2023.1 ist eine Hauptversion, die viele Neuerungen mitbringt: Integration von 3v4l.org, Verbesserungen an der neuen Bedienoberfläche, DFA-Debugger für PHP, Unterstützung für mehrere composer.json-Dateien pro Projekt und einiges mehr.

Neue UI Beta

Bereits in der letzten Version haben wir eine neue Bedienoberfläche eingeführt, die jedoch standardmäßig nicht aktiviert war. In dieser Version haben wir die neue Bedienoberfläche anhand Ihres Feedbacks und unserer Forschungsergebnisse weiter optimiert. Im Folgenden stellen wir Ihnen einige dieser Verbesserungen vor.

Sie können die neue Bedienoberfläche unter Preferences / Settings | Appearance & Behavior | New UI aktivieren.

Kompaktmodus

Der Kompaktmodus vereinfacht die Nutzung der neuen Bedienoberfläche auf kleineren Bildschirmen. Durch schmalere Symbolleisten und Fensterkopfleisten, reduzierte Freiräume und Abstände und kleinere Symbole und Schaltflächen hilft Ihnen dieser Modus, sich auf den Code statt auf die Bedienelemente zu konzentrieren.

Um zum Kompaktmodus zu wechseln, aktivieren Sie im Menü View die Option Appearance | Compact Mode.

Sichtbares Dateinamen-Feld bei ausgeblendeter Tableiste in neuer UI

Wenn die Editor-Tabs ausgeblendet sind, wird der Name der aktuell geöffneten Datei in einem eigenen Feld angezeigt.

Vertikale Teilung von Toolfenstern

Mit dieser Einstellung können Sie in der neuen Bedienoberfläche den Toolfensterbereich in zwei Fenster unterteilen und so anordnen, dass beide Toolfenster gleichzeitig sichtbar sind. Dies war in der alten Bedienoberfläche möglich, fehlte aber bisher in der neuen Version.

Um ein Toolfenster im unteren Teil dieses Bereichs zu platzieren, ziehen Sie sein Symbol entlang der Seitenleiste und legen es unterhalb der Trennlinie ab. Alternativ können Sie auf das Symbol rechtsklicken und das Toolfenster mit der Aktion Move to an den gewünschten Ort verschieben.

Projekt-Tabs in der neuen UI unter macOS

Wenn mehrere Projekte in demselben Fenster geöffnet sind, können Sie jetzt unter macOS unkompliziert zwischen diesen wechseln, indem Sie die Projekt-Tabs unter der Symbolleiste anklicken.

In der Standardeinstellung werden unter macOS die Fenster-Tabs nur im Vollbildmodus angezeigt. Um sie dauerhaft zu aktivieren, ändern Sie die Systemeinstellungen wie folgt:

Überarbeitetes Run-Widget für neue UI

Auf Grundlage der Rückmeldungen unserer Benutzergemeinde zur neuen Bedienoberfläche haben wir das Run-Widget in der Kopfzeile des Hauptfensters überarbeitet, um eine zurückhaltendere und augenfreundlichere Wirkung zu erzielen.

PHP

Ausführen von PHP-Scratch-Dateien auf 3v4l.org

PhpStorm 2023.1 natively integrates with 3v4l.org and allows you to run PHP scratch files on any desired PHP version without installing anything on your local machine.

Um eine neue PHP-Scratch-Datei zu erstellen, drücken Sie Strg+Alt+Shift+Insert.

Wählen Sie die gewünschte PHP-Version in der Dropdown-Liste aus und klicken Sie auf Ausführen. Die Ausgabe des Skripts wird neben dem Editor angezeigt.

If you find 3v4l.org useful, consider supporting its author with a donation here: github.com/sponsors/SjonHortensius.

Leistungsoptimierungen

In diesem Release haben wir erhebliche Performance-Optimierungen vorgenommen. Auch in den nächsten Updates werden wir unsere Arbeit in diesem Bereich fortsetzen. Dieses Release enthält folgende Verbesserungen:

Geteilte Indizes für populäre PHP-Pakete

Einige PHP-Pakete sind so verbreitet, dass es wenig sinnvoll ist, ihren Index für jede PhpStorm-Installation neu zu erstellen. Stattdessen haben wir für Sie bereits Indizes für viele gängige PHP-Pakete angelegt, darunter PHPUnit, aws/aws-sdk-php, doctrine/orm, laravel/framework, symfony/* und andere.

Wenn Sie nun ein indiziertes PHP-Projekt öffnen, liest PhpStorm die Datei composer.json ein, um zu erkennen, für welche Abhängigkeiten ein geteilter Index verfügbar ist.

PhpStorm kann den Index herunterladen oder ihn lokal neu berechnen – je nachdem, ob Ihre CPU und Ihr Arbeitsspeicher schneller sind als Ihre Internetverbindung.

Sie können auch eigene geteilte Indizes für Ihre privaten Projekte erstellen. Wie das geht, erfahren Sie hier.

Vorher:

Nachher:

Go to Class-Aktion während der Indizierung verfügbar

Im Rahmen unserer Performance-Verbesserungen achten wir auch darauf, möglichst viele Aktionen bereits während der Indizierung verfügbar zu machen.

Go to Class (Ctrl+O bzw. Navigate | Class...) gehört zu den meistgenutzten Aktionen für die Navigation im Code. Ab sofort ist diese Aktion jederzeit verfügbar – sogar während der Neuindizierung. Zuvor wurde nur eine leere Liste angezeigt, bis die Indizierung abgeschlossen war.

Annotationsläufe während der Indizierung

Eine weitere Aktion, die jetzt bereits während des Indizierungsvorgangs verfügbar ist, ist die Annotation des Codes.

Dies bedeutet, dass viele Fehler und Soft-Keywords bereits früher von PhpStorm hervorgehoben werden, um Ihren Arbeitsablauf zu beschleunigen und reibungsloser zu gestalten.

Intelligente Ausführung von Scanning files to index

Die IDE startet nun viel schneller, da PhpStorm die vorhandenen Caches des Projekts aus der vorherigen Sitzung verwendet und gleichzeitig nach neuen Dateien sucht, die indiziert werden müssen. Wenn der Scan keine Änderungen ergibt, ist die IDE sofort einsatzbereit.

Schnellere Inspektionen

Wir haben an Performance-Verbesserungen für alle Inspektionen gearbeitet, mit besonderem Schwerpunkt auf den rechenintensivsten Inspektionen. Einige sind 30 bis 40% schneller geworden, während bei anderen die Leistungssteigerung moderater ausfällt – der kombinierte Effekt ist jedoch in jedem Fall spürbar. Im folgenden Video sehen Sie einen Vergleich mit den Vorgängerversionen.

Blade-Templates

Wir haben die Performance der Syntaxhervorhebung innerhalb der @php...@endphp-Tags drastisch verbessert. Unabhängig von der Codekomplexität werden jetzt alle Schlüsselwörter und Konstrukte viel schneller eingefärbt.

Neue IDE-Empfehlung zum Ändern der Windows-Defender-Einstellungen für eine bessere Performance

Der Echtzeitschutz von Windows Defender kann die Geschwindigkeit der IDE erheblich beeinträchtigen. Um dies zu vermeiden, empfiehlt PhpStorm jetzt, bestimmte Ordner in die Defender-Ausschlussliste aufzunehmen.

Die Benachrichtigung bietet die Wahl, diese Einstellungen entweder automatisch anzupassen oder erst die Defender-Konfigurationsanweisungen zu prüfen und die Änderungen dann manuell vorzunehmen.

Debugging mit Datenflussanalyse

Wenn Sie Xdebug für das Debugging von PHP-Anwendungen bevorzugen, steht Ihnen jetzt mit der Datenflussanalyse (DFA) eine weitere erweiterte Funktion zur Verfügung. Dadurch können Sie im Voraus erkennen, welche Codebranches auf keinen Fall ausgeführt werden – ohne den Code Schritt für Schritt im Debugger auszuführen.

PhpStorm zeigt das vorberechnete Ergebnis der Bedingungen im Inlay auf der rechten Seite an, noch bevor der Code ausgeführt wird. So können Sie sich ein Bild von der Situation machen, ohne sich intensiver in den Code zu vertiefen. Zweige, die nicht ausgeführt werden, werden während der Debugging-Sitzung ausgegraut.

Ausschalten von DFA während des Debuggings

Wenn diese Zusatzinformationen für Ihr Debugging nicht relevant sind, können Sie mit der rechten Maustaste ein beliebiges Inlay mit vorberechneten Werten anklicken und die DFA-Funktion für die aktuelle Debugging-Sitzung ausschalten.

Die dauerhafte Deaktivierung der Funktion ist unter Preferences/Settings | PHP | Debug | Xdebug möglich.

Einschränkungen

Aufgrund technischer Beschränkungen kann PhpStorm derzeit keine Eigenschaftswerte im Voraus berechnen. Diesem Thema werden wir uns im Rahmen der zukünftigen Entwicklung widmen.

Unterstützung aller PHPStan- und Psalm-Tags

Alle PHPStan- und Psalm-Tags werden jetzt in PhpStorm korrekt geparst. Dadurch wird das Lesen von Code mit vielen Annotationen angenehmer und einfacher.

Unterstützung für Multi-Composer- und Multi-Vendor-Projekte

Bisher hat PhpStorm jedes geöffnete Projekt als einen gemeinsamen Bereich gehandhabt. Wir sehen jedoch immer mehr Fälle, in denen es mehrere Anwendungen in demselben Projekt gibt, die alle ihre eigenen composer.json-Abhängigkeiten haben.

Wir haben eine Grundlage geschaffen, um diese Art von Projekten mit mehreren composer.json-Dateien und Vendor-Verzeichnissen zu unterstützen. Dies ermöglicht die folgenden Verbesserungen:

  • Verzeichnisausschlüsse werden korrekt festgelegt. Dies verbessert die Gesamtleistung, da wir weniger Analysen und Inspektionen durchführen müssen. Außerdem wird dadurch die Mehrfachauflösung stabiler.
  • PSR-Roots werden korrekt erkannt – Refactorings wie Move Class funktionieren erwartungsgemäß, wenn Sie Klassen per Drag&Drop zwischen Anwendungen im Projekt verschieben.
  • Fehlende Erweiterungen in composer.json werden für jede Anwendung korrekt gemeldet.

Neue Inspektionen

Benutzerdefinierte Regex-basierte Inspektionen zum Suchen und Ersetzen

Sie können jetzt eigene Inspektionen mit regulären Ausdrücken für Such- und Ersetzungsvorgänge erstellen. Diese Inspektionen können insbesondere für die Hervorhebung von Codestil-, Formatierungs- und einfachen Codeproblemen nützlich sein.

Öffnen Sie Settings/Preferences | Editor | Inspections und drücken Sie das +-Symbol. Wenn Sie in der Liste die Option Add RegExp Search Inspection (oder Replace) auswählen, wird ein Dialog angezeigt, in dem Sie Ihre neue Inspektion definieren können.

Für erweiterte Inspektionen etwa mit Typhierarchie-Prüfungen können Sie Inspektionen mit Structural Search and Replace (SSR) verwenden. Learn more about them in the docs, or check out the example in the video.

Integrierte PHP-Inspektionen

Jedes PhpStorm-Release bringt eine Reihe neuer, sofort einsatzbereiter Inspektionen mit. PhpStorm 2023.1 bildet da keine Ausnahme – hier sind einige der interessantesten neuen Inspektionen:

Methodenüberladung/Klassenerweiterung trotz @final-Tag

Wenn Sie Klassen mit dem Schlüsselwort final kennzeichnen, führen Verstöße zu einem fatalen Fehler. Ein sanfterer Ansatz wäre die Verwendung des PHPDoc-Tags @final.

In diesem Fall weist PhpStorm auf eine nicht korrekte Vererbung hin, aber der Code wird ohne Fehlermeldung ausgeführt.

Inkompatible Rückgabetypen

Mit einem neuen Quick-Fix in PhpStorm 2023.1 können Sie einen kompatiblen Rückgabetyp für Methoden in abgeleiteten Klassen hinzufügen oder einen nicht kompatiblen Rückgabetyp ändern.

Assertion kann durch assertTrue/assertFalse ersetzt werden.

Mehrere Instanzen von isset() bei verschachtelten Array-Zugriffen oder Objekten können durch eine einzige ersetzt werden.

Variablen, auf die aus anderen Dateien zugegriffen wird, als global kennzeichnen.

Verbesserungen für den PHP-Entwicklungsalltag

Anklickbare Pfade und Klassenreferenzen bei der var_dump()/dd()-Ausgabe im Terminal

Wir möchten die Debugging-Erfahrung für Entwickler*innen verbessern, die den „Dump and Die“-Ansatz bevorzugen. In einem ersten Schritt wandeln wir Dateipfade und Klassenreferenzen in aktive Links um. Beim Anklicken wird die entsprechende Datei im Editor geöffnet.

Beschreibungen für Dateiöffnungsmodi im Completion-Popup

Mit dem letzten PhpStorm-Update haben wir Beschreibungen für die unterschiedlichen Formate in Datums- und Zeitfunktionen eingeführt.

Ab dieser Version wird bei allen Funktionen, die Dateimodi akzeptieren, eine detaillierte Beschreibung dieser Modi im Completion-Dropdown angezeigt. Jetzt müssen Sie sich nicht mehr merken, was r+, a, w usw. bedeuten.

Neue Live-Vorlagen

Wir haben weitere Live-Vorlagen eingeführt, darunter fun für die Funktionsvorlage und fori für indizierte Schleifen.

Benutzererfahrung

Vollständiger IDE-Zoom

Sie können jetzt in PhpStorm hinein- und herauszoomen und dabei alle Elemente der Bedienoberfläche gleichzeitig verkleinern oder vergrößern. Wählen Sie dazu im Hauptmenü View | Appearance und passen Sie die IDE-Skalierung nach Wunsch an.

Dies kann zum Beispiel für Demonstrationen, Livestreams, Online-Meetings oder Präsentationen hilfreich sein.

Wenn Sie diesen Aktionen eindeutige Tastenkürzel zuordnen, können Sie sie noch leichter aufrufen. Öffnen Sie das Fenster Search Actions (Strg+Umschalt+A), geben Sie „zoom ide“ ein, drücken Sie Alt+Enter und weisen Sie ein Tastenkürzel zu.

Speichern mehrerer Toolfenster-Layouts

Sie können jetzt mehrere Toolfenster-Layouts speichern und nach Bedarf zwischen ihnen wechseln. Die neuen Aktionen zum Speichern, Aktualisieren und Aktivieren von Layouts finden Sie unter Window | Layouts.

Neue Einstellung Remember size for each tool window

Das neue Kontrollkästchen Remember size for each tool window finden Sie unter Settings/Preferences | Appearance & Behavior | Tool Windows. Es bietet Ihnen die Wahl, die Breite der seitlichen Toolfenster zu vereinheitlichen oder aber ihre Größe individuell anzupassen.

Editor

Fill Paragraph für Markdown-Dateien

Markdown-Dateien unterstützen jetzt die Editoraktion Fill Paragraph, mit der Sie lange Textabschnitte in gleich lange Zeilen umbrechen können.

Setzen Sie dazu die Einfügemarke auf den Absatz, den Sie umbrechen möchten, und wählen Sie die Aktion im Edit-Menü aus. Sie können auch Find Action (Strg+Umschalt+A) verwenden, um nach dem Befehl Fill Paragraph zu suchen und ihn auszuführen.

Neue Smart Keys-Einstellungsseite für Markdown

Wir haben eine Seite unter Settings/Preferences | Editor | General | Smart Keys hinzugefügt, auf der Sie Ihre Markdown-Einstellungen einrichten und anpassen können.

Diese Seite erleichtert Ihnen die Verwaltung Ihrer Einstellungen, da sie separate Kontrollkästchen für unterschiedliche Funktionen des Editors enthält. Zuvor gab es nur ein Kontrollkästchen unter Settings/Preferences | Languages & Frameworks.

Anzeigen von Leerräumen nur im ausgewählten Code

Mit dem neuen Kontrollkästchen Selection unter Settings/Preferences | Editor | General | Appearance | Show Whitespace können Sie festlegen, dass die IDE Leerräume nur in der Textauswahl als kleine Punkte anzeigen soll.

Versionierung/Git/GitHub

Farbige Hinweise zum Versionierungsstatus im Structure-Toolfenster

Im Structure-Toolfenster haben wir farbige Markierungen für Änderungen hinzugefügt.

Dies bedeutet, dass Sie jetzt sehen können, welche Eigenschaften, Methoden und Funktionen geändert oder neu hinzugefügt wurden.

Verbessertes Branches-Popup

Sie können jetzt einfacher zwischen Branches wechseln, da diese in erweiterbaren Listen abgelegt sind.

Auto-Completion im Popup Create New Branch

In PhpStorm 2023.1 EAP #1 haben wir Completion-Vorschläge im Popup-Fenster Create New Branch eingeführt. Sobald Sie mit der Eingabe eines Namens für Ihren neuen Branch beginnen, schlägt die IDE anhand der lokalen Branchnamen relevante Präfixe vor.

Commit-Prüfungen im Hintergrund

Commit-Prüfungen für Git und Mercurial werden jetzt im Hintergrund durchgeführt – nach dem Commit, aber vor dem Push-Vorgang. Dadurch wird der gesamte Commit-Vorgang beschleunigt.

Verbesserter Code-Review-Workflow für GitHub

Unsere Untersuchungen haben ergeben, dass das häufigste Pull-Request-Szenario darin besteht, dass zuerst GitHub aufgerufen und dann bei Bedarf in der IDE nachgeschaut wird, wenn ein detaillierter Blick in den Code erforderlich ist.

Um diesen Ablauf zu erleichtern, haben wir das Pull Request-Toolfenster überarbeitet. Für jeden geöffneten Pull-Request wird ein eigener Tab angezeigt. Der Tab zeigt sofort die Liste der geänderten Dateien an, enthält aber weniger Ablenkungen als bisher. Dadurch können Sie sich besser auf die jeweilige Aufgabe konzentrieren.

Mit einer speziellen Schaltfläche können Sie außerdem sehr einfach die wichtigste Aktion für den aktuellen Pull-Request-Status ausführen.

Docker-Verbesserungen

Zentrale Protokollierung aller Docker-Compose-Container

Der Dashboard-Tab des Docker-Compose-Knotens führt jetzt die Protokolle aller Docker-Compose-Container zusammen, um diese Daten übersichtlich an einem Ort zu präsentieren. Die Aktualisierung erfolgt in Echtzeit.

Unterstützung für Azure Container Registry

Sie können jetzt unkompliziert eine Verbindung zur Azure Container Registry herstellen. Gehen Sie zu Preferences / Settings | Build, Execution, Deployment | Docker | Docker Registry und führen Sie die Einrichtung aus, indem Sie die Option Docker V2 im Eingabefeld Registry auswählen.

Neue Einstellung zum Anwenden der Mount-Option :z für das Einbinden von Volumes unter SELinux

Sie können jetzt Docker-Bind-Mounts mit dem Konfigurationsflag :z versehen, um Volumes mit Docker-Containern auf SELinux-Workstations zu verbinden.

Sie können diese Funktion unter Preferences / Settings | Advanced Settings | Docker aktivieren.

Web

Astro-Unterstützung

Long-awaited Astro support has landed in PhpStorm! Die Bereitstellung erfolgt über unser neues Astro-Plugin, das Sie unter Preferences / Settings | Plugins installieren können. Das Plugin stellt grundlegende Funktionen bereit, einschließlich Syntaxhervorhebung, Code-Completion mit automatischen Importen, Refactorings, Navigation, korrekte Formatierung und mehr.

TypeScript-Unterstützung in Vue-Templates

TypeScript wird jetzt in Vue-Templates unterstützt. Die Sprache wird aktiviert, wenn Sie das lang-Attribut eines script-Tags auf ts setzen. Bisher wurde unabhängig vom lang-Attribut im script-Tag JavaScript als Sprache verwendet. In Templates für Vue-Single-File-Components unterstützt PhpStorm jetzt Inline-Casting, verbessert die Typverengung und bietet korrekte Informationen über abgeleitete Typen in der Schnelldokumentation.

Tailwind-CSS-Konfiguration

Dieses Release führt Unterstützung für Konfigurationsoptionen ein, darunter Completion-Vorschläge für benutzerdefinierte Klassen in der Option classAttributes sowie experimentelle Optionen wie tailwindCSS.experimental.configFile.

Sie können diese Konfigurationsoptionen unter Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS einrichten.


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