Unterstützung für Union-Typen (PHP 8), neue PHP-Kontrollfluss-Engine, Extract-Class-Refactoring, vollständige Unterstützung für GitHub-Pull-Requests, neues Inspektions-Widget und OpenAPI-Unterstützung.
Die Unterstützung von Union-Typen bildet den Auftakt für die PHP-8-Unterstützung. In PHP 8.0 können für Eigenschaften, Argumente und Rückgabewerte mehrere Typen deklariert werden. PhpStorm bietet bereits jetzt vollständige Unterstützung für diese Funktion und kann Ihnen bei der Migration helfen.
Union-Typen konnten bisher über PHPDoc implementiert werden, und PhpStorm markiert jetzt diese Verwendungen.
Mit einem Quick-Fix (Alt+Enter) können sie in native Union-Typen konvertiert werden.
Dies funktioniert überall, wo Union-Typen verwendet werden können, etwa in Funktionsargumenten, Rückgabetypen und Eigenschaften. Bei Eigenschaften werden auch Standardwerte berücksichtigt.
Um die PHP-8-bezogenen Funktionen zu aktivieren, stellen Sie mit einer der folgenden Methoden die Sprachversion auf PHP 8 um:
composer.json
an – PhpStorm übernimmt diese Einstellung automatisch.PhpStorm analysiert Aufrufe, ermittelt mögliche Typen und hebt Problembereiche in Bezug auf Union-Typen hervor.
Die Prüfungen funktionieren auf allen Ebenen: Eigenschaften, Argumente und Rückgabewerte.
In komplexem Code können Sie dadurch Probleme auf den ersten Blick erkennen. PhpStorm hebt Stellen, die Ihre Aufmerksamkeit benötigen, noch vor der Ausführung hervor.
Es gibt viele Typkombinationen, die unzulässig oder redundant sind. Zum Beispiel:
bool|false
Foo|Foo
object|User
iterable|array
oder iterable|Traversable
All diese Kombinationen werden von PhpStorm als ungültig markiert.
Bei der Angabe eines einzigen nullbaren Typs erlaubt PHP 8 sowohl die Schreibweise ?Typ
als auch Typ|null
.
Werden jedoch mehrere Typen mit null kombiniert, ist ?Typ1|Typ2
aufgrund der Mehrdeutigkeit nicht zulässig.
PhpStorm hebt diese Verstöße hervor und bietet per Alt+Enter einen Quick-Fix zur Korrektur an.
Bei der Vererbung können Sie in PHP Typen ändern, wenn Sie die folgenden Grundregeln befolgen:
Wenn Sie mit PhpStorm arbeiten, müssen Sie sich diese Regeln zum Glück nicht merken: Die IDE überprüft den Code für Sie und markiert eventuelle Verstöße.
In PHP 8 wird es einen speziellen Pseudotyp false
geben, der nur in Union-Typdeklarationen verwendet werden kann.
Dieser wird in der Standardbibliothek oft verwendet, zum Beispiel in strpos()
oder array_search()
. Der Typ kann verwendet werden, um ein negatives Ergebnis zu repräsentieren.
PhpStorm markiert fehlerhafte Verwendungen und berücksichtigt dabei die Typinferenz.
Nach dem Hinzufügen einer nativen Union-Typdeklaration kann ein PHPDoc überflüssig sein, da es keine zusätzlichen Informationen enthält.
Sie können solche Vorkommen jetzt mit Alt+Enter per Quick-Fix entfernen.
PhpStorm kann jetzt komplexe Codepfade analysieren und feststellen, ob die Bedingung in einem if-else
-Block Sinn ergibt oder redundant ist.
Dies funktioniert ähnlich wie die Bedingungsprüfung. PhpStorm erkennt, ob eine instanceof
-Überprüfung sinnvoll ist oder aber aufgrund des abgeleiteten Typs in der Typhierarchie immer Wahr ergibt.
Mit dieser neuen Aktion können Sie sich den abgeleiteten Typ des ausgewählten Ausdrucks anzeigen lassen.
Beim Programmieren können Sie einen Ausdruck auswählen und mit der Tastenkombination Strg+Umschalt+P oder der Menüoption View | Type Info den Typ des Ausdrucks abfragen.
PhpStorm kann erkennen, wenn eine Variable garantiert immer null
ist. In diesem Fall schlägt die IDE vor, den Ausdruck zu vereinfachen, um den Code klarer zu gestalten.
ruleset.xml
von PHP_CodeSniffer der Abschnitt exclude-pattern
vorhanden ist, berücksichtigt PhpStorm diese Vorgabe und analysiert keine Dateien im angegebenen Pfad. Composer-Abhängigkeiten können im Editor direkt in der composer.json-Datei verwaltet werden.
Wenn im Abschnitt repositories
benutzerdefinierte Quellen angegeben sind, funktioniert die Completion auch für benutzerdefinierte Pakete.
Ein Randleistensymbol informiert über den aktuellen Caching-Status von benutzerdefinierten Repositories.
Wenn ein Paket mehrere per Komma oder Pipe (||
) getrennte Versionen hat, bietet PhpStorm die Completion für alle verfügbaren Versionen des Pakets an.
Bisher war nach Eingabe von ~
, ^
oder >=
keine Completion mehr verfügbar. Dies wurde korrigiert, und die Completion in composer.json funktioniert jetzt auch in diesem Fall wie erwartet.
PhpStorm bietet zahlreiche Integrationen mit Tools von Drittanbietern. Wenn ein unterstütztes Tool in composer.json deklariert ist, wird jetzt in der Randleiste daneben ein Schraubenschlüsselsymbol angezeigt. Mit einem Klick darauf können Sie direkt den entsprechenden Abschnitt in den Einstellungen aufrufen.
Wenn eine Klasse durch viele nebensächliche Aufgaben überfrachtet ist, können Sie sie jetzt refaktorieren, indem Sie Methoden und Eigenschaften mit dem Refactoring Extract Class in eine neue Klasse auslagern.
Wählen Sie die Funktion, Methode oder Eigenschaft aus, die Sie auslagern möchten, drücken Sie Strg+T und wählen Sie Extract class.
Das Refactoring erstellt eine neue Datei, instanziiert ein Objekt der Klasse im Konstruktor und passt die Verwendungen automatisch an.
Die PHP-Befehlszeilentools unterstützen jetzt Remote-Interpreter.
Unter Preferences/Settings | Tools | Command Line Tool Support können Sie einen neuen Tooleintrag hinzufügen und einen der konfigurierten Remote-Interpreter auswählen.
Laravel Artisan wird jetzt automatisch erkannt! Dies bedeutet, dass Sie nach dem Öffnen eines Laravel-Projekts sofort Strg-Strg drücken und mit der Befehlseingabe beginnen können. PhpStorm bietet dann Completion-Vorschläge für verfügbare Befehle.
Wenn irgendwo im Code ein Array deklariert und mit Daten gefüttert wird, die jedoch nie gelesen werden, ist das Array in der Regel redundant und stellt einfach nur „Rauschen“ dar.
Die Inspektion erkennt solche Fälle und schlägt Ihnen vor, das Array zu entfernen, um den Code aufzuräumen.
Wenn eine typisierte Eigenschaft keinen Standardwert hat, wird sie als nicht initialisiert betrachtet. Beim Lesen nicht initialisierter Eigenschaften wird ein TypeError
ausgelöst (außer wenn die magische Methode __get()
definiert ist).
PhpStorm erkennt nicht initialisierte Eigenschaften und markiert Code, der diese Eigenschaften ausliest.
Der gesamte Pull Request-Workflow kann jetzt in PhpStorm erledigt werden – Sie müssen nicht mehr zu einem Browser wechseln. Sie können Pull-Requests verwalten, den zeitlichen Verlauf und die Inline-Kommentare anzeigen, Kommentare und Reviews hinzufügen und Änderungen übernehmen.
Um mit GitHub-Pull-Requests zu arbeiten, öffnen Sie das Toolfenster Pull Requests über die Symbolleiste oder im Hauptmenü unter VCS | Git | View Pull Requests.
Wählen Sie dann einen Pull-Request von der Liste aus, um alle Details anzuzeigen: Nachricht, Branch-Namen, Autor usw.
Von hier aus können Sie den Review-Prozess starten, indem Sie die geänderten Dateien überprüfen und die Änderungen kommentieren – auf Commit- oder Zeilenebene.
Auch das Mergen von Pull-Requests ist direkt in der IDE möglich. Sie müssen dazu nicht aus dem Pull-Request erst einen lokalen Branch erstellen – das Mergen ist direkt möglich.
PhpStorm 2020.2 unterstützt das Plugin OpenAPI Specifications. Dies ist ein von JetBrains entwickeltes kostenloses Plugin, das in OpenAPI-Spezifikationsdateien (openapi.yaml/openapi.json und swagger.yaml/swagger.json) Completion, Navigation und Validierung implementiert.
Das Plugin bietet außerdem:
In der oberen rechten Ecke des Editors finden Sie ein brandneues Inspektions-Widget, das die Probleme in der aktuellen Datei zusammenfasst.
Alle neuen Funktionen und Verbesserungen von WebStorm 2020.2 sind auch in PhpStorm 2020.2 verfügbar – entweder als integrierte Funktionen oder als kostenlose Plugins, die im Plugin-Marketplace zur Verfügung stehen.
Sie möchten Prettier anstelle des integrierten Formatierers verwenden, um Ihren Code in Form zu bringen? Dieses Update macht es Ihnen noch leichter als zuvor. Aktivieren Sie einfach das neue Kontrollkästchen On code reformat, und die IDE verwendet ab sofort Prettier für die Neuformatierung der Dateitypen .js, .ts, .jsx und .tsx. Weitere Dateitypen lassen sich auf einfache Weise hinzufügen.
Nuxt.js-Unterstützung, Vue-spezifische Codestil-Einstellungen, Verbesserungen bei der Verwendung von Vue in TypeScript-Projekten – das sind nur einige der Neuerungen, die wir im Lauf des vergangenen Jahres eingeführt haben. Damit bietet PhpStorm eine umfassendere Vue-Unterstützung als je zuvor!
Neue, intelligente Intentions (Alt+Enter) helfen Ihnen dabei, einige Aktionen schneller auszuführen. Zum Beispiel können Sie jetzt eine for-Schleife mit numerischem Index mühelos in eine forEach
-Arraymethode umwandeln. Das Lesen von Dokumentationskommentaren in JavaScript- und TypeScript-Dateien ist ebenfalls einfacher geworden, da diese jetzt direkt im Editor gerendert werden können, um Ablenkungen zu minimieren.
PhpStorm 2020.2 unterstützt Git-Installationen in WSL 2 bei der Arbeit mit Projekten auf Linux- und Windows-Dateisystemen.
Die IDE kann je nach Speicherort des Projekts zwischen den Git-Programmdateien wechseln. Wenn Sie ein Projekt in WSL öffnen (über den Pfad \\wsl$
), wechselt die IDE automatisch zu Git in WSL, und Sie können alle Git-bezogenen Funktionen in der IDE verwenden.
Wenn Sie zwei Branches vergleichen möchten, um festzustellen, welche Commits nicht zueinander gehören, zeigt PhpStorm 2020.2 die Logs im Editor statt im Git-Toolfenster an. Dadurch ist genügend Platz vorhanden, um alle Informationen anzuzeigen.
Wählen Sie im Git-Branches-Popup-Menü VCS | Branches die Aktion Compare with Current.
Sie können jetzt redundante lokale Commits unkompliziert entfernen, indem Sie sie auf der Log-Registerkarte des Git-Toolfensters auswählen und im Kontextmenü auf Drop Commit klicken.
Sie haben auch die Möglichkeit, mehrere lokale Commits zu einem einzigen Commit zu kombinieren, um beispielsweise den Commitverlauf vor dem Pushen zu bereinigen.
Öffnen Sie im Git-Toolfenster die entsprechenden Commits und wählen Sie dann im Kontextmenü Squash Commits….
Die IDE führt hinter den Kulissen einen interaktiven Rebase-Vorgang durch.
Schauen Sie sich auch die Neuerungen in DataGrip 2020.2 an – alle neuen Funktionen sind auch in PhpStorm verfügbar.
Wenn Ihre Zelle einen großen Wert enthält, können Sie diesen jetzt in einem separaten Bereich anzeigen oder bearbeiten. Sie können außerdem auf der rechten Symbolleiste den Soft-Wrap-Modus ein- und ausschalten. Nutzen Sie die ganze Leistungsfähigkeit unseres Code-Editors für Ihre Daten.
Wir haben einen neuen SQL-Dialekt hinzugefügt: Google BigQuery. Die vollständige Unterstützung von BigQuery lässt zwar noch ein wenig auf sich warten, aber der Anfang ist jetzt gemacht. Bisher kann PhpStorm bei der Verwendung von Google BigQuery Ihre Abfragen korrekt hervorheben und Programmierunterstützung bereitstellen.
Sie können sich die Abfrage anzeigen lassen, die Ihren im Dateneditor vorgenommenen Änderungen entspricht. Die neue DML-Schaltfläche ist dann aktiv, wenn es ungespeicherte Änderungen gibt. Diese Abfrage entspricht nicht in jedem Fall exakt der SQL-Abfrage, die zur Änderung Ihrer Daten ausgeführt wird, da PhpStorm einen JDBC-Treiber zum Aktualisieren von Tabellen verwendet. Meistens sind die beiden Abfragen jedoch identisch.