Das ist neu in PhpStorm 2024.3

Einige Highlights dieser Version:

  • Unterstützung von PHP 8.4
  • AI-Assistant-Verbesserungen
  • Unterstützung für xdebug_notify()
  • PHP-Interpreter von Laravel Herd

Unterstützung von PHP 8.4

PhpStorm 2024.3 enthält neue Inspektionen und Quick-Fixes, die einen reibungslosen Wechsel zu PHP 8.4 und dessen zahlreichen neuen Features ermöglichen. Im Folgenden geben wir Ihnen einen kurzen Überblick darüber, wie die neuen Sprachmerkmale von PHP 8.4 in Ihrem PhpStorm-Workflow unterstützt werden.

Property-Hooks

Property-Hooks sind eine der größten Änderungen in der modernen PHP-Geschichte. Sie wurden entwickelt, um Ihnen Standardcode für Getter und Setter zu ersparen, indem Sie stattdessen get- und set-Hooks für Eigenschaften implementieren.

Für Property-Hooks (einschließlich Hooks in Promoted Properties) stellt PhpStorm folgende Unterstützung bereit:

  • Einen Quick-Fix zum Ersetzen von Getter- und Setter-Methoden durch get- und set-Property-Hooks.
  • Eine Kontextaktion zum Hinzufügen von Property-Hooks zu Eigenschaften.
  • Code-Completion für die Schlüsselwörter get und set inkl. Einfügen von Property-Hook-Code.
  • Möglichkeit zur Generierung von get- und set-Hooks für eine Eigenschaft über eine Generate-Aktion, analog zu Generate | Getters and Setters.
  • Automatische Erkennung von Property-Hooks, bei denen die Kurzschreibweise verwendet werden kann, und ein Quick-Fix für die Umwandlung.
  • Checks für die Korrektheit von Syntax und Logik bei Property-Hooks.

Asymmetrische Sichtbarkeit

Durch asymmetrische Sichtbarkeit können bei typisierten Eigenschaften separate Sichtbarkeitseinstellungen für Lese- und Schreiboperationen definiert werden.

PhpStorm 2024.3 enthält Checks und Quick-Fixes für die korrekte Implementierung von asymmetrischen Sichtbarkeiten in Ihrem Code für folgende Fälle:

  • Redundante asymmetrische Sichtbarkeitsmodifikatoren.
  • Versuch, die set-Sichtbarkeit einer Eigenschaft weiter zu fassen als die Hauptsichtbarkeit (get).
  • Redundante final-Modifikatoren für private (set) Eigenschaften.
  • Versuch, die Sichtbarkeit von geerbten Eigenschaften einzuschränken.
  • Versuch, eine Eigenschaft mit asymmetrischer Sichtbarkeit außerhalb des set-Sichtbarkeitsbereichs zu ändern.

Neue Array-Funktionen

Sie können mit PhpStorm 2024.3 foreach-Schleifen durch die in PHP 8.4 eingeführten Funktionen array_find(), array_find_key(), array_any() und array_all() ersetzen.

new ohne Klammern

PhpStorm 2024.3 unterstützt das Weglassen von Klammern um new-Ausdrücke in Konstrukten vom Typ (new MeineKlasse())->methode().

AI Assistant  Plugin

Bitte beachten Sie, dass die Funktionen von AI Assistant nur mit einem AI-Pro-Abonnement oder im Rahmen einer Testphase verfügbar sind.

Neues PHP-Completion-Modell von JetBrains

Wir haben die Qualität unserer KI-basierten PHP-Completion deutlich verbessert und die Latenzzeit verringert. Ermöglicht wird dies durch Mellum, das neue, proprietäre große Sprachmodell (LLM) von JetBrains, das für eine schnellere, intelligentere und kontextrelevantere cloudbasierte Code-Completion optimiert ist.

Weitere Informationen zum neuen LLM von JetBrains finden Sie in diesem Blogartikel .

Syntaxhervorhebung für Codevorschläge

Inline-Completion-Vorschläge sind jetzt mit Syntaxhervorhebung versehen, was ihre Lesbarkeit verbessert.

Inkrementelle Annahme von Codevorschlägen

Mehrzeilige Codevorschläge können jetzt in einem Zug (Tab), wortweise (Strg+→) oder zeilenweise (End) übernommen werden.

Inline-KI-Prompts

Dank der neuen Inline-Prompt-Funktion können Sie jetzt direkt im Editor Anfragen an AI Assistant in natürlicher Sprache eingeben. Dieser interpretiert die Anfrage sofort und generiert einen Codevorschlag, ohne dass Sie zusätzliche Schritte unternehmen müssen.

PhpStorm kennzeichnet die von AI Assistant geänderten Zeilen mit einer violetten Markierung in der Randleiste, damit Sie die Änderungen einfacher erkennen können. Wenn Ihnen ein Vorschlag nicht zusagt, können Sie den Prompt anpassen, indem Sie auf den violetten Block in der Randleiste klicken oder Strg+/ drücken.

Verbessertes Kontextmanagement

Mit diesem Update haben wir die Verwaltung des Kontexts, den AI Assistant bei seinen Vorschlägen berücksichtigt, transparenter und intuitiver gestaltet. Eine überarbeitete Oberfläche, in der Sie jedes Kontextelement einsehen und verwalten können, bietet volle Transparenz und Kontrolle. Die geöffnete Datei und der darin enthaltene ausgewählte Code werden nun automatisch zum Kontext hinzugefügt. Sie können unkompliziert Dateien hinzufügen oder entfernen, um den Kontext an Ihren Workflow anzupassen. Darüber hinaus können Sie für das gesamte Projekt gültige Anweisungen beifügen, um die Antworten von AI Assistant an Ihren Codebestand anzupassen.

Generierung von Titeln und Beschreibungen für Pull- und Merge-Requests

Mit AI Assistant können Sie jetzt direkt in der IDE passende Titel und Beschreibungen für Ihre Pull- und Merge-Requests generieren. Dies vereinfacht Ihren Arbeitsablauf und sorgt dafür, dass Ihre Beschreibungen klar und prägnant sind.

SQL-Fehlerbehandlung mit AI Assistant

Im Fehlermeldungsbereich stehen Ihnen jetzt bei der Ausführung von SQL-Abfragen einige nützliche Aktionen zur Fehlerbehandlung mit AI Assistant zur Verfügung. Explain with AI öffnet den KI-Chat und fordert mit einem automatisch versendeten Prompt eine Fehlererklärung von AI Assistant an. Fix with AI korrigiert den Abfragefehler direkt im Editor.

Lesen Sie hier über alle neuesten Updates des JetBrains AI Assistant.

Debugging

Unterstützung für xdebug_notify()

Um das PHP-Debugging noch einfacher zu gestalten, bietet PhpStorm jetzt einen strukturierten Weg zur Verarbeitung des Outputs der Funktion xdebug_notify().

Mit den in Xdebug 3.1 eingeführten xdebug_notify()-Aufrufen können Sie gezielt Variablen an die Debugkonsole von PhpStorm ausgeben.

Laravel-Ökosystem

PHP-Interpreter von Laravel Herd in PhpStorm

Wenn Sie als Laravel-Entwickler*in Laravel Herd verwenden, erkennt PhpStorm 2024.3 jetzt automatisch den Pfad zur aktuell verwendeten PHP-Programmdatei von Laravel Herd auf Ihrem System. Um diesen Interpreter in PhpStorm zu verwenden, gehen Sie zu den CLI-Interpreter-Einstellungen (PHP | CLI interpreter | ) und wählen Sie im sich öffnenden Dialog CLI Interpreters die PHP-Programmdatei aus der Liste der vorkonfigurierten Optionen aus.

Verbesserungen für das Pest-Framework

Bei der Laravel-Entwicklung in PhpStorm 2024.3 ist das Testframework Pest erheblich besser zu nutzen. Wir haben eine vollständige Pest-3.0-Unterstützung implementiert, und parallele sowie Mutationstests mit Pest können direkt in der IDE gestartet werden.

Mutationstests mit Pest 3.0

Mit dem kürzlich veröffentlichten Pest 3.0 wurden Mutationstests eingeführt. Dabei werden kleine Änderungen am Code vorgenommen, um festzustellen, ob dies beim Testen auffällt.

In PhpStorm 2024.3 können Sie die Pest-Option Run Tests (Pest) with Mutation wie jede andere Testoption auslösen – direkt im Editor, im Project-Toolfenster oder über eine Run/Debug-Konfiguration. Im speziellen Toolfenster Pest Mutation lassen sich die Testergebnisse überprüfen.

Sie müssen nur dafür sorgen, dass für den PHP-Interpreter, den Sie in der IDE verwenden, Xdebug 3.0+ installiert ist.

Weitere Details finden Sie in der PhpStorm-Dokumentation.

Parallele Tests mit Pest

In PhpStorm 2024.3 müssen Sie nicht mehr zum Terminal wechseln, um Pest-Tests im Parallelmodus auszuführen. Navigieren Sie einfach zur Testdatei und wählen Sie über das Randleistensymbol im Editorfenster, im Project-Toolfenster oder über eine Run/Debug-Konfiguration die Option Run Tests (Pest) in Parallel aus.

Versionsverwaltung

Lösen von Merge-Konflikten bei Importanweisungen

PhpStorm kann jetzt Merge-Konflikte in Importanweisungen automatisch lösen. Um diese Funktion zu aktivieren, wählen Sie im Merge-Dialog unter dem Zahnradsymbol die Option Resolve conflicts in import statements, oder gehen Sie zu Settings | Tools | Diff & Merge und wählen Sie Automatically resolve conflicts in import statements.

Updates für Find in Files

Die Funktion Find in Files wurde um einen neuen Suchbereich erweitert: Project Files Excluding Git-Ignored. Mit dieser Option werden alle per .gitignore ignorierten Dateien von den Suchergebnissen ausgeschlossen. So können Sie sich beim Durchsuchen Ihres Projekts auf den relevanten Code konzentrieren.

Option zur Deaktivierung von Pre-Commit-Hintergrundprüfungen

Sie können jetzt Hintergrundprüfungen während des Commit-Prozesses mit einer neuen Option Run advanced checks after a commit is done unter Settings | Version Control | Commit verwalten. Mit dieser Einstellung können Sie festlegen, ob Tests und Inspektionen nach einem Commit ausgeführt werden sollen. Wenn Sie möchten, dass diese Prüfungen vor dem Commit abgeschlossen werden, deaktivieren Sie die Option einfach.

Branchname auf Begrüßungsbildschirm

Der Begrüßungsbildschirm zeigt jetzt den Branchnamen an, damit Sie beim Umgang mit mehreren Projektversionen den Überblick behalten und unkompliziert zwischen Arbeitsverzeichnissen wechseln können.

Datenbank-Tools

Fragment-Introspektion und intelligente Aktualisierung für MySQL und MariaDB

PhpStorm unterstützt jetzt die fragmentarische Introspektion. Zuvor konnte der Introspector nur eine vollständige Introspektion der Schemas in den MySQL- oder MariaDB-Datenbanken durchführen; die Metadaten eines Objekts konnten nicht einzeln aktualisiert werden. Jedes Mal, wenn eine DDL-Anweisung in der Konsole ausgeführt wurde, bei der die Möglichkeit bestand, dass sie ein Objekt im Datenbankschema verändern könnte, führte die IDE eine vollständige Introspektion des gesamten Schemas durch. Das war zeitaufwändig und störte oft den Arbeitsablauf.

Jetzt analysiert PhpStorm, welche Objekte von einer DDL-Anweisung betroffen sein könnten, und aktualisiert nur diese Objekte. Wenn Sie ein einzelnes Objekt im Database Explorer auswählen und die Aktion Refresh aufrufen, wird nur dieses eine Objekt aktualisiert, anstatt wie bisher das gesamte Schema.

Inspektion für übermäßige Verwendung von JOIN-Klauseln

In bestimmten Fällen ist die Ausführung von Abfragen, die eine große Anzahl an JOIN-Klauseln enthalten, aufgrund von Leistungseinbußen nicht empfehlenswert. Der Editor kann nun solche Abfragen erkennen und markieren. Sie können diese Inspektion in den IDE-Einstellungen aktivieren. Navigieren Sie zu Editor | Inspections, erweitern Sie den Abschnitt SQL und wählen Sie Excessive JOIN count.

Schwebende Symbolleiste für die Paginierung

Um die Paginierung in unserem Dateneditor sichtbarer zu machen, wird das entsprechende Steuerelement statt in der Symbolleiste nun unten in der Mitte des Dateneditors angezeigt.

Frontend

Übersichtlichere Suchergebnisse für Verzeichnisse

PhpStorm schließt jetzt standardmäßig node_modules-Ergebnisse aus, wenn Sie Find in Files in Projektverzeichnissen verwenden, sodass die Menge an irrelevanten Dateien reduziert wird. Sie können das bisherige Verhalten wiederherstellen, indem Sie die Option Search in library files when “Directory” is selected in Find in Files unter Settings | Advanced Settings aktivieren.

Bessere Navigations- und Umbenennungsfunktionen für Framework-Komponenten

Wir haben die im Editor angezeigten Hinweise für Vue-, Svelte- und Astro-Komponenten verbessert. Die Aktion Show component usages findet jetzt Verwendungen sowohl in Importen als auch in Markup-Templates. Wir haben auch einen Filter Show Component Usages hinzugefügt, um Komponentenverwendungen bei der Suche nach regulären Dateireferenzen auszuschließen. Das Rename-Refactoring bietet wiederum eine neue Option zum Einbeziehen von Verwendungen beim Umbenennen einer Komponentendatei.

Farbvorschau für Tailwind-CSS-Klassen

Die Farbvorschau für Tailwind-CSS-Klassen wird jetzt inline im Editor angezeigt, sodass Sie Farben leichter unterscheiden können. Wir unterstützen jetzt die Methode textDocument/documentColor aus dem Language Server Protocol (LSP), sodass alle LSP-basierten Plugins standardmäßig über diese Funktionalität verfügen.

Verbesserungen für Angular

In Projekten mit Angular 19 verwendet PhpStorm jetzt den Standalone-Modus für Komponenten, Direktiven und Pipes. Es wurden Quick-Fixes hinzugefügt, um die Konvertierung zwischen Standalone- und Nicht-Standalone-Komponenten zu erleichtern. Bei der Neuformatierung des Codes oder mithilfe einer neuen Inspektion können ungenutzte Standalone-Importe automatisch entfernt werden. Die Unterstützung für die @let-Syntax wurde ebenfalls verbessert.

Bedienoberfläche

Hervorhebung aller Vorkommen des ausgewählten Texts

In der Standardeinstellung hebt PhpStorm jetzt automatisch alle Vorkommen des ausgewählten Texts in der jeweiligen Datei hervor. So können Sie leichter erkennen, wo der ausgewählte Text in Ihrem Code erscheint. Wenn Sie das bisherige Verhalten bevorzugen, können Sie diese Funktion unter Settings | Editor |General | Appearance abschalten.