Einige Highlights dieses großen Updates:
AI Assistant von JetBrains ist jetzt allgemein verfügbar und bietet eine Reihe von neuen und verbesserten Funktionen, die Ihre Produktivität bei der Arbeit mit JetBrains-IDEs steigern.
AI Assistant generiert jetzt mehrzeilige Codeblöcke für Sie. Beginnen Sie einfach mit der Eingabe in einer neuen Zeile, und wenn ein LLM-Vorschlag verfügbar ist, wird ein ausgegrauter Codeabschnitt eingeblendet. Drücken Sie Tab, um den Vorschlag anzunehmen.
Derzeit sind solche Vorschläge in Klassenkontexten und Funktionsdefinitionen verfügbar.
AI Assistant kann auch Tests für Klassenmethoden generieren. Legen Sie die Einfügemarke auf die Klassenmethode, die Sie mit Unit-Tests prüfen möchten, und drücken Sie Alt+Enter. Wählen Sie AI Assistant und dann Generate Unit Tests.
Bisher konnten Sie den KI-Chat nutzen, um Codeabschnitte zu generieren. Jetzt können Sie mit der Aktion AI Assistant | Generate code… eine Eingabeaufforderung direkt im Editor öffnen. Sie werden aufgefordert, den Code zu beschreiben, den Sie generieren möchten. Anhand dieser Beschreibung unterbreitet Ihnen AI Assistant Vorschläge, die Sie als Ganzes oder teilweise übernehmen können.
Wenn Sie ein PHP-Skript, eine Run-Konfiguration oder eine Composer-Aktion ausführen, kann es vorkommen, dass die Ausführung aus irgendeinem Grund fehlschlägt. AI Assistant unterstützt Sie jetzt dabei, die Ursache des Problems zu ermitteln. Klicken Sie in einem Stack-Trace oder einer Fehlermeldung auf die Schaltfläche Explain with AI, um eine KI-generierte Erklärung zu erhalten.
Sie können AI Assistant in PhpStorm als Zusatzfunktion mit einem Abonnement für den JetBrains AI Service verwenden.
PhpStorm now supports the Pest test framework out of the box. We recently agreed with the original author of the Pest plugin to take over its development and bundle it in PhpStorm. You can read the details in our recent blog post.
Wie PHPUnit-Tests können auch Pest-Tests jetzt direkt von PhpStorm aus ausgeführt werden. Wenn Sie Ihre Einfügemarke innerhalb eines Tests platzieren und das Run-Fenster auslösen, wird eine Run-Konfiguration für diesen speziellen Test erstellt. Wenn sich die Einfügemarke in einer Datei, aber nicht innerhalb eines bestimmten Tests befindet, werden alle Tests in dieser Datei ausgeführt.
Mit der neuen Pest-Unterstützung können Sie Assertions schreiben, indem Sie Funktionen oder Methoden auf $this
aufrufen. Auch die Auto-Completion in Testfunktionen wurde verbessert, sodass Sie bereits während der Eingabe sehen können, welche Assertions verfügbar sind.
In Pest können Sie benutzerdefinierte „Expectations“ (Erwartungen) schreiben, um den Umfang von Standardprüfungen in Ihren Tests zu reduzieren. PhpStorm hilft Ihnen, Verwendungen von benutzerdefinierten Expectations zu finden und diese umzubenennen.
PhpStorm 2023.3 bietet vollständige Unterstützung für PHP 8.3. Die meisten IDE-Änderungen integrieren sich so organisch in Ihren PhpStorm-Workflow, dass sie überhaupt nicht auffallen. Wir gehen hier daher nur auf die Neuerungen ein, die Sie kennen müssen, um sie nutzen zu können.
#[\Override]
-Attribut PHP 8.3 führt das neue Attribut #[\Override]
ein. Sie können es verwenden, um explizit kundzutun, dass Sie eine Methode überschreiben wollen. Die PHP-Engine prüft, ob eine mit #[\Override]
markierte Methode tatsächlich die übergeordnete Methode überschreibt, und löst eine Ausnahme aus, wenn dies nicht der Fall ist. PhpStorm 2023.3 warnt Sie frühzeitig in einem solchen Fall.
An entsprechenden Stellen schlägt PhpStorm außerdem vor, das Attribut #[\Override]
hinzuzufügen.
json_validate()
Mit PHP 8.3 wurde die neue Funktion json_validate()
in die Standardbibliothek aufgenommen. Die einzige Möglichkeit, eine Zeichenfolge auf korrekte JSON-Syntax zu prüfen, bestand zuvor darin, die Zeichenfolge zu dekodieren und zu sehen, ob Fehler auftreten. PhpStorm erkennt solche Codemuster und schlägt vor, sie durch einen json_validate()
-Aufruf zu ersetzen. Dies kann von Vorteil sein, wenn Sie nur wissen müssen, ob eine Zeichenfolge gültiges JSON ist, da hierbei weniger Arbeitsspeicher benötigt wird als bei der tatsächlichen Dekodierung.
In PHP 8.3 können Sie Typen für Klassenkonstanten deklarieren. Alle Typdeklarationen können verwendet werden, mit Ausnahme von void
, callable
und never
.
Für typisierte Klassenkonstanten stellt PhpStorm folgende Unterstützung bereit:
PHP 8.3 führt einige Deprecations ein, und PhpStorm bietet Ihnen entsprechende Inspektionen, um diese zu erkennen.
PhpStorm 2023.3 bietet verschiedene Verbesserungen für die Symfony-Entwicklung.
Ein neuer integrierter Projektinitialisierer für Symfony ermöglicht es Ihnen, neue Symfony-Projekte mit den gewünschten Typen und Versionen direkt vom Begrüßungsbildschirm aus zu erstellen.
Die IDE bietet jetzt in QueryBuilder-Methodenaufrufen eine vollständige Unterstützung für die Doctrine Query Language (DQL). Die Unterstützung umfasst Syntaxhervorhebung, Feld-Completion, Auflösung für die Zielmodellklasse und vieles mehr.
Following the introduction of attributes in PHP 8.0, Doctrine annotations are being deprecated and will soon be removed. Um Ihnen den Umstieg zu erleichtern, enthält PhpStorm 2023.3 eine Funktion zur Umwandlung von Doctrine-Annotationen in Attribute.
PhpStorm unterstützt auch die Umwandlung von Symfony-Annotationen in die entsprechenden Attribute, z. B. #[Required]
, #[Route]
usw.
Als experimentelle Funktion haben wir die Möglichkeit hinzugefügt, Verzeichnisse auszuschließen, die aus indizierten Bibliotheken stammen. Durch den Ausschluss solcher Dateien aus Ihrem Projekt können Sie Probleme mit Mehrfachdefinitionen vermeiden und die Indizierungsleistung verbessern.
Wir arbeiten weiter an der Optimierung der Nutzungserfahrung für Generics. In PhpStorm 2023.3 können Sie eine Farbcodierung für Generics einrichten, um die Unterscheidung zwischen generischen Typen zu erleichtern.
Durch die zunehmende Verbreitung von Attributen entsteht ein Lesbarkeitsproblem bei Code, der mit langen mehrzeiligen Attributen eines Frameworks annotiert ist. In PhpStorm 2023.3 sollte dies kein Problem mehr darstellen, da Sie jetzt mehrzeilige Attribute durch eine Faltfunktion ausblenden können.
PHPUnit 10 introduced support for attributes for adding metadata to test classes and test methods, as well as tested code units. Wir haben eine Inspektion und einen Quick-Fix implementiert, die Ihnen helfen, von den alten PHPDoc-Annotationen auf diesen neuen Stil umzusteigen.
PhpStorm 2023.3 führt eine überarbeitete Methode zur Überprüfung von Änderungen ein. Anstatt jede Datei einzeln durchzugehen, können Sie jetzt alle geänderten Dateien eines Changesets in einem einzigen, scrollbaren Rahmen betrachten. Dieser neue Diff-Betrachter ist über das Git Log-Toolfenster zugänglich und funktioniert derzeit mit JetBrains-Space-Reviews. Wir arbeiten daran, die Kompatibilität auf GitLab und GitHub zu erweitern.
Mit der neuen Inlay-Option Run to Cursor können Sie beim Debuggen in PhpStorm 2023.3 den Code unkompliziert bis zu einer bestimmten Codezeile ausführen. Wenn Ihr Programm angehalten ist, können Sie den Mauszeiger auf die Zeile bewegen, bis zu der Sie den Code ausführen möchten, und das Popup Run to Cursor verwenden. Dasselbe können Sie auch mit dem Tastenkürzel Alt + F9 erreichen, während sich die Einfügemarke in der gewünschten Zeile befindet.
Als Reaktion auf Ihr Feedback haben wir in der neuen Bedienoberfläche die Möglichkeit nachgerüstet, die Hauptsymbolleiste im Standard-Anzeigemodus der IDE auszublenden – genau wie in der alten Oberfläche. Um die Symbolleiste zu entfernen, wählen Sie View | Appearance und deaktivieren Sie die Option Toolbar.
Mit PhpStorm 2023.1 haben wir die Möglichkeit eingeführt, mehrere Toolfenster-Layouts zu speichern und zwischen ihnen zu wechseln, um Ihren Arbeitsbereich individueller einrichten zu können. In PhpStorm 2023.3 erweitern wir diese Funktionalität, indem wir die Option Default layout einführen, die eine einfache Möglichkeit schafft, das Erscheinungsbild Ihres Arbeitsbereichs auf die Standardeinstellung zurückzusetzen. Dieses Layout ist nicht individualisierbar und kann über Window | Layouts aufgerufen werden.
Um die gleichzeitige Arbeit mit verschiedenen Dateitypen im Editor zu erleichtern, haben wir eine standardmäßige Farbkodierung für Editor-Tabs eingeführt, die an die Darstellung im Project-Toolfenster angelehnt ist.
PhpStorm enthält eine Vielzahl von WebStorm-Funktionen, und wir haben jetzt einige der frustrierenden Unstimmigkeiten beim Hinzufügen von import type
-Anweisungen behoben und die Arbeit mit verbatimModuleSyntax
erleichtert. Wir haben die Option hinzugefügt, in TypeScript die Art der import type
-Anweisung zu konfigurieren. Außerdem haben wir bei TypeScript-Dateien das Verhalten für das Feld exports
in der Datei package.json verbessert.
Wenn Sie HTML-Code in eine JSX-Datei einfügen, konvertiert PhpStorm jetzt nicht nur Attribute, sondern schließt darüber hinaus auch Einzeltags für Sie. Sie können diese Option unter Settings | Editor | General | Smart Keys | JavaScript konfigurieren.
@property
To support the new @property
API for creating custom CSS properties, PhpStorm 2023.3 now offers inspections and completion features for explicitly defining CSS custom properties, allowing you to check and restrict property types, establish default values, and determine inheritance possibilities for custom properties.
Wir haben Unterstützung für defineSlots
eingeführt, inklusive Completion und Navigation für den slot
-Namen sowie ein Rename-Refactoring für das Umbenennen. Außerdem haben wir Completion-Unterstützung für Eigenschaften mit defineExpose
eingeführt. In PhpStorm 2023.3 werden erforderliche Importe für Komponenten basierend auf dem von der Funktion defineOptions
spezifizierten Namen hinzugefügt.