Das ist neu in PhpStorm 2020.3

PhpStorm 2020.3 ist ein großes Update, das die Unterstützung von PHP 8, PHPStan, Psalm, Tailwind CSS, Xdebug 3 und die kollaborative Entwicklung über Code With Me einführt.

PHP 8

PHP 8.0 ist ein wichtiges Sprach-Update mit vielen unglaublichen neuen Funktionen. Mit PhpStorm können Sie: die Kompatibilität Ihres bestehenden Codes überprüfen, Ihre Codebasis schneller aktualisieren und von den neuesten Sprachverbesserungen profitieren.

Sprachversion sehen

Sprachversion sehen

Jetzt können Sie immer sehen, welche Sprachversion in einem Projekt verwendet wird. Wir haben die entsprechende Anzeige in die Statusleiste gesetzt. Von dort aus können Sie auch die Sprachversion ändern, wenn composer.json keine Einschränkungen für die PHP-Version auflistet.

Bezeichner für benannte Argumente hinzufügen

Benannte Argumente

Funktions- und Methodenargumente können in PHP 8 durch Angabe eines Parameternamens übergeben werden. Dadurch entfällt die Notwendigkeit, optionale Parameter zu setzen, und Aufrufe sind jetzt selbstdokumentiert.

PhpStorm kann dabei helfen:

  • Die Korrektheit der Argumentnamen überprüfen.
  • Parameternamen automatisch mit einer Alt+Enter-Quick-Fix hinzufügen.
  • Redundante Argumente entfernen.
Convert to Promoted Property

Höher gestufte Konstruktor-Eigentschaften

Mit dieser Funktion können Sie die Menge an Codebausteine reduzieren, wenn Sie Variablen über einen Konstruktor initialisieren.

In PhpStorm können Sie im Konstruktor initialisierte Eigenschaften in höher gestuften Eigenschaften umwandeln oder sie mit der Quick-Fix Alt+Enter in Convert to promoted property.

Nullsichere Operatorverwendungen validieren

Nullsafe-Operator

Anstatt umständliche Bedingungen mit Null-Prüfungen verwenden zu müssen, können Sie mit dem neuen Operator?-> Ketten von Aufrufen mit impliziten Prüfungen auf Null für jedes Element aufbauen.

PhpStorm stellt sicher, dass der Operator korrekt verwendet wird.

Switch-Anweisung in Match-Ausdruck umwandeln

Match-Ausdruck

Der neue Match-Ausdruck ist eine typsichere und kompakte Alternative zur Switch-Anweisung. Ein Match-Ausdruck kann als Wert verwendet und einer Variablen zugewiesen oder zurückgegeben werden.

PhpStorm bestimmt, ob ein Switch-Block in einen Match-Ausdruck umgewandelt werden kann, und tut dies automatisch mit einer Alt+Enter-Quick-Fix.

Mit dem neuen Ausdruck kann es schwierig sein, Missbräuche zu erkennen. PhpStorm wird sie für Sie hervorheben.

Neue Funktionen für Strings

Neue Funktionen für Strings: str_contains(), str_starts_with(), str_ends_with()

In PHP 8 können Sie die Funktion str_contains() verwenden, um festzustellen, ob ein String Teil eines anderen Strings ist. PhpStorm 2020.3 lenkt Ihre Aufmerksamkeit auf alle Verwendungen von strpos(), die durch str_contains() ersetzt werden können.

PhpStorm weist auch auf die Stellen hin, an denen alte substr()-Aufrufe durch die neuen, selbsterklärenderen str_starts_with() und str_ends_with()-Funktionen ersetzt werden können.

Weitere unterstützte PHP 8-Funktionen

Weitere unterstützte PHP 8-Funktionen

  • Nachgestelltes Komma nach dem letzten Parameter in einem Funktionsaufruf und im Use-Abschnitt von Closures.
  • Catches ohne Erfassung sind nützlich, um Ausnahmen abzufangen, wenn Sie kein Ausnahmeobjekt benötigen.
  • Throw kann jetzt als Ausdruck verwendet werden (d.h. er ist in Pfeil-Funktionen, dem Coalesce-Operator ?? und dem Ternär-/elvis-Operator ?: erlaubt).
  • Um einen Klassen-FQN von einem Objekt zu erhalten, können Sie $object::class anstelle von get_class($object) verwenden. Verwenden Sie dazu ein Alt+Enter Quick-Fix.

PHP 8 Attribute

PHPDoc in native Union-Typen konvertieren

PHP 8 ermöglicht die Verwendung von Attributen zur strukturierten Angabe von Metadaten, anstatt sich auf PHPDoc-Annotations verlassen zu müssen.

PhpStorm bietet Hervorhebungen, Code-Completion, Finden von Verwendungen, Refactorings und andere Programmierunterstützung für die Arbeit mit Attributen. Es verfügt auch über Inspektionen, um sicherzustellen, dass die Attribute deklariert und gültig verwendet werden.

PhpStorm 2020.3 kommt mit mehreren PHP 8 Attributen, die sofort in der IDE verfügbar sind. We also provide them in a composer package jetbrains/phpstorm-attributes, so feel free to add it as a dependency in composer.json.

#[Deprecated] Attribut

#[Deprecated]

Wie das @deprecated PHPDoc-Tag können Sie dieses Attribut verwenden, um Methoden, Funktionen, Klassen oder Klassenkonstanten zu markieren, die in zukünftigen Versionen der Software entfernt werden.

Geben Sie reason und replacement an, damit Ihre Benutzer verstehen, warum sie ein Upgrade benötigen, und ermöglichen Sie es ihnen, dies automatisch mit einer Quick-Fix mit Alt+Enter zu tun.

#[ArrayShape] Attribut

#[ArrayShape]

Verwenden Sie dieses Attribut, um die Schlüssel und Werttypen von objektartigen Arrays zu definieren. Dies wird die Programmierunterstützung und Analyse, die Sie von PhpStorm erhalten, verbessern.

Hinweis: Wenn in einer Zeile geschrieben wird, funktioniert dies auch in PHP 7.4 und früher.
#[Immutable]

#[Immutable]

Markieren Sie Objekte oder Eigenschaften mit dem Attribut #[Immutable], wenn Sie alle Versuche verhindern möchten, das Objekt nach seiner Initialisierung zu ändern.

Dadurch wird der Programmzustand vorhersehbarer und die Debugging einfacher.

Passen Sie die Einschränkung des Schreibbereichs von Eigenschaften mit einer der folgenden Konstanten an, die an den Attributkonstruktor übergeben werden: CONSTRUCTOR_WRITE_SCOPE, PRIVATE_WRITE_SCOPE, PROTECTED_WRITE_SCOPE.

Hinweis: Wenn in einer Zeile geschrieben wird, funktioniert dies auch in PHP 7.4 und früher.
#[Pure] Attribut

#[Pure]

Markieren Sie Funktionen, die keine Nebenwirkungen erzeugen, als #[Pure], um die Codeflussanalyse in PhpStorm zu verbessern. Die IDE wird redundante Aufrufe von reinen Funktionen hervorheben.

Wenn Sie eine Funktion als #[Pure] markieren, aber in ihrem Körper ein Versuch stattfindet, etwas aus dem äußeren Bereich zu ändern, dann wird PhpStorm den unsicheren Code hervorheben.

Alle solchen PHP-internen Funktionen, z.B. array_merge(), sind bereits in PhpStorm markiert.

#[ExpectedValues] Attribut

#[ExpectedValues]

Mit diesem Attribut legen Sie fest, welche Werte eine Funktion als Parameter akzeptiert und welche sie zurückgeben kann. Dies verbessert die Code-Completion und hilft bei der Erkennung möglicher Fehler.

#[ExpectedValues] ist eine erweiterte Version von expectedArguments() aus .phpstorm.meta.php..

#[NoReturn] Attribut

#[NoReturn]

Markieren Sie die Funktionen, die eine Skriptausführung beenden können, mit einem #[NoReturn]-Attribut, um eine genauere Kontrollflussanalyse zu erhalten.

PhpStorm bietet an, das Attribut mit einem Quick-Fix in der Hierarchie nach unten zu propagieren, um eine noch genauere Analyse zu erhalten.

#[Language] Attribut

#[Language]

Fügen Sie dieses Attribut zu String-Parametern hinzu, die Text in einer anderen Sprache enthalten, z.B. RegExp, SQL usw. Dies wird zusätzliche PhpStorm-Funktionen enthüllen.

Psalm- und PHPStan-Unterstützung

Diese beiden statischen Analysatoren können in PhpStorm 2020.3 als erstklassige Tools verwendet werden, um Probleme im Editor hervorzuheben. Fügen Sie sie als dev-dependencies in composer.json hinzu und schalten Sie die entsprechende Inspektion ein, indem Sie auf ein Schraubenschlüssel-Symbol in der Nähe des Tools klicken.

PHPStan und Psalm

PhpStorm bietet auch Code-Completion für @psalm-*-Tags und behandelt sie als speziell, so dass es keine Probleme mit Hervorhebungen, undefinierten Klassen usw. gibt. In den meisten Fällen ist es jetzt sicher, das @psalm--Präfix aus den Tags zu entfernen, d.h. @psalm-return kann einfach @return sein und @psalm-param kann @param sein.

Es werden viele Psalmtypen unterstützt, darunter skalare, numerische und Typen mit Konstanten. Dementsprechend ist alles, was von der Typ-Inferenz abhängt, treffsicherer geworden: Inspektionen, Codegenerierung und -Completion.

Xdebug 3

Xdebug 3

Xdebug 3 ist eine frische Überarbeitung des PHP-Debuggers. Er arbeitet viel schneller und ist einfacher einzurichten.

Um Xdebug 3 zu konfigurieren, müssen Sie lediglich XDEBUG_MODE=debug angeben.

Der Standard-Debugging-Port für Xdebug wurde von 9000 auf 9003 geändert. Um die Migration zu erleichtern, überwacht PhpStorm standardmäßig beide Ports. Der Port und andere Einstellungen für Xdebug können unter Preferences/Settings | Languages & Frameworks | PHP | Debugangepasst werden.

Learn more about Xdebug 3 in the Upgrade Guide.

Code With Me

Kollaborative Entwicklung mit Code With Me

PhpStorm 2020.3 unterstützt Code With Me – einen neuen Dienst von JetBrains für kollaborative Entwicklung und Paarprogrammierung. Mit Code With Me können Sie das Projekt, das gerade in Ihrer IDE geöffnet ist, für andere freigeben, um gemeinsam in Echtzeit daran zu arbeiten.

Mehr zu Code With Me erfahren Sie in diesen Beiträgen.

Tailwind CSS

Schnellzugriff auf Einstellungen von Tools, die als Abhängigkeiten hinzugefügt wurden

Mit PhpStorm können Sie jetzt Tailwind CSS produktiver nutzen.

Die IDE wird Ihre Tailwind-Klassen automatisch vervollständigen, Ihnen beim Mouseover eine Vorschau des resultierenden CSS anzeigen und die Anpassungen unterstützen, die Sie mit Hilfe der Dateien tailwind.config.js vornehmen.

HTTP-Client

Guzzle-Anfragen mit dem HTTP-Client ausführen

Guzzle-Anfragen mit dem HTTP-Client ausführen

Guzzle is one of the most popular HTTP clients for PHP. In PhpStorm 2020.3 können Sie Guzzle-Anfragen testen, ohne den tatsächlichen Code auszuführen.

Wenn die Anfrage unterstützt wird, wird ein Randleistensymbol daneben angezeigt. Klicken Sie darauf, um eine neue HTTP-Scratch-Datei zu erstellen, bei der die Parameter vorausgefüllt sind.

Spielen Sie mit der Anforderung herum und speichern Sie sie dann als .http-Datei in Ihrem Projekt.

HTTP-Anfragen nach cURL exportieren

HTTP-Anfragen nach cURL exportieren

Um einen cURL-String von einer HTTP-Anfrage zu erhalten, drücken Sie Alt+Enter im Editor für HTTP-Anfragen und wählen Sie Convert to cURL and copy to clipboard.

Sie können den cURL-String im Terminal oder mit einem HTTP-Client Ihrer Wahl verwenden.

Editor

Verbesserte Markdown-Bearbeitung und -Vorschau

Verbesserte Markdown-Bearbeitung und -Vorschau

Mermaid.js Diagramme und Grafiken können jetzt innerhalb der IDE gerendert werden. Aktivieren Sie diese Unterstützung unter Preferences/Settings | Languages & Frameworks | Markdown.

In der oberen rechten Ecke des Vorschaufensters gibt es eine Schaltfläche Auto-Scroll Preview, die das synchrone Scrollen mit dem Editor ein- und ausschaltet.

Wir haben eine Reihe von beliebten Markdown-Codestil-Voreinstellungen hinzugefügt, die funktionieren, wenn Sie den Code mit Strg+Alt+L neu formatieren. Die Einstellungen befinden sich unter Preferences/Settings | Editor | Code Style | Markdown.

Verbesserte Rechtschreib- und Grammatikprüfung

Verbesserte Rechtschreib- und Grammatikprüfung

Die Engine für die Grammatikprüfung unterstützt mehr Sprachen und bietet qualitativ hochwertigere Grammatikprüfungen.

Wenn ein Fehler hervorgehoben wird, erscheint ein Popup-Fenster mit einer Erklärung und einem Korrekturvorschlag.

Wenn Sie Alt+Enter mit einem Textcursor über dem hervorgehobenen Text drücken, sehen Sie alle vorgeschlagenen Ersetzungen in der obersten Ebene, statt einer verschachtelten Liste wie zuvor.

Geteilte Editor-Ansicht mit Drag-and-Drop

Geteilte Editor-Ansicht mit Drag-and-Drop

Öffnen Sie mehrere Registerkarten nebeneinander, indem Sie eine Registerkarte auf die gewünschte Seite des Bildschirms ziehen.

Eine andere Möglichkeit zum Öffnen von Registerkarten im geteilten Modus besteht darin, bei einer ausgewählten Datei in der Projektansicht oder in einem beliebigen Suchfenster Shift+Enter zu drücken.

Vorschau-Tab

Vorschau-Tab

Sie können Dateien in einer speziellen Registerkarte in der Vorschau anzeigen, ohne sie tatsächlich zu öffnen. Um diese Funktion zu aktivieren, klicken Sie auf das Zahnradsymbol in der Projektansicht und aktivieren Sie die beiden Optionen Enable Preview Tab und Open Files with Single Click. Wenn Sie mit der Bearbeitung einer Datei beginnen, die Sie in der Vorschau anzeigen, wird das Register zu einer normalen Datei.

IDE

Verbesserungen für Search Everywhere

Verbesserungen für Search Everywhere

Im Popup-Fenster Search Everywhere (Shift+Shift) werden die Ergebnisse etwas anders angezeigt. Statt nach Typ werden sie jetzt nach ihrer Relevanz für die Suchanfrage gruppiert.

Es ist jetzt auch möglich, einfache mathematische Berechnungen in Search Everywhere durchzuführen. Geben Sie einige Zahlen und mathematische Operatoren ein und sehen Sie sofort die Ergebnisse der Berechnung. Dadurch entfällt die Notwendigkeit, zu einer Rechneranwendung zu wechseln und Ihren Flow zu unterbrechen.

Search Everywhere kann auch den Git-Verlauf durchsuchen, einschließlich Informationen über Branches und Commits.

Web-Technologien

Alle neuen Funktionen und Verbesserungen von WebStorm 2020.3 sind auch in PhpStorm 2020.3 verfügbar – entweder als integrierte Funktionen oder als kostenlose Plugins im Plugin-Marketplace.

TypeScript im Problems-Toolfenster

TypeScript im Problems-Toolfenster

Wir haben den TypeScript-Sprachdienst in das Problems-Toolfenster integriert und das separate TypeScript-Toolfenster entfernt, so dass es einfacher ist, die Probleme in Ihrem Code von einer Stelle aus zu überprüfen. Den Aktionen, die bisher im TypeScript-Toolfenster verfügbar waren, haben wir ein separates Widget in der Statusleiste spendiert.

React-Komponenten aus Verwendungen erstellen

React-Komponenten aus Verwendungen erstellen

Wenn Sie eine ungelöste React-Komponente in Ihrem Code haben, platzieren Sie die Einfügemarke an seiner Stelle, drücken Sie Alt+Enter und wählen Sie Create class / function component von der Liste – die IDE erstellt dann das entsprechende Codekonstrukt für Sie.

Versionsverwaltung

Git-Staging-Unterstützung

Git-Staging-Unterstützung

PhpStorm 2020.3 kommt mit Unterstützung für den Git-Staging-Bereich. Um sie zu nutzen, aktivieren Sie das Kontrollkästchen Enable staging area unter Preferences/Settings | Version Control | Git.

Gehen Sie mit Alt+0 zurück zum Fenster des Commit-Tools, um Staged- und Unstaged-Dateien anzuzeigen.

Führen Sie das Staging Ihrer Dateien durch, indem Sie auf das Plus-Symbol neben ihnen klicken.

Sie können das Staging bestimmter Zeilen durchführen, indem Sie das Randleistensymbol neben den Änderungen im Editor verwenden.

Datenbank-Tools

Schauen Sie sich auch die Neuerungen in DataGrip 2020.3 an – alle neuen Funktionen sind auch in PhpStorm verfügbar.

SQL für MongoDB

SQL für MongoDB

Sie können jetzt SQL verwenden, um MongoDB-Datenbanken abzufragen. PhpStorm 2020.3 supports SELECT queries with clauses such as JOIN, WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, OFFSET, and all available MongoDB functions except map, reduce, filter, and let. Weitere Informationen zur SQL-Unterstützung in MongoDB finden Sie in diesem Blogeintrag.

Couchbase-Unterstützung und neue Datenextraktoren

Couchbase-Unterstützung und neue Datenextraktoren

Die IDE unterstützt jetzt den Couchbase-Query-Dienst. Wir haben außerdem zwei neue Extraktoren eingeführt: Mit One-Row können Sie eine Spalte in eine kommagetrennte Zeichenfolge kopieren, und SQL-Insert-Multirow erzeugt eine INSERT-Anweisung zum Einfügen mehrerer neuer Zeilen.