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.
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.
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.
Wenn die Editor-Tabs ausgeblendet sind, wird der Name der aktuell geöffneten Datei in einem eigenen Feld angezeigt.
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.
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:
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.
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.
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:
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:
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.
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.
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.
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.
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.
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.
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.
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.
Aufgrund technischer Beschränkungen kann PhpStorm derzeit keine Eigenschaftswerte im Voraus berechnen. Diesem Thema werden wir uns im Rahmen der zukünftigen Entwicklung widmen.
Alle PHPStan- und Psalm-Tags werden jetzt in PhpStorm korrekt geparst. Dadurch wird das Lesen von Code mit vielen Annotationen angenehmer und einfacher.
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:
composer.json
werden für jede Anwendung korrekt gemeldet. 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.
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:
@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.
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.
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.
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.
Wir haben weitere Live-Vorlagen eingeführt, darunter fun
für die Funktionsvorlage und fori
für indizierte Schleifen.
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.
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.
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.
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.
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.
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.
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.
Sie können jetzt einfacher zwischen Branches wechseln, da diese in erweiterbaren Listen abgelegt sind.
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 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.
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.
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.
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.
: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.
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 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.
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.