Das ist neu in PhpStorm 2020.1

Potenzieren Sie Ihre Produktivität mit diesem großen IDE-Update

Sofort einsatzbereite composer.json-Unterstützung

Abhängigkeiten einfacher verwalten: alle Aktionen sind jetzt direkt im Editor einer composer.json-Datei verfügbar.

Pfeilfunktionen

Abhängigkeiten verwalten

Wir haben den alten Dialog zur Abhängigkeitsverwaltung als veraltet gekennzeichnet, da es viel einfacher ist, innerhalb der Datei composer.json mit den Paketen zu arbeiten.

Um ein neues Paket hinzuzufügen, können Sie im Abschnitt require(-dev) die Anfangsbuchstaben des Namens eingeben oder Ctrl+Leertaste drücken und von der Vorschlagsliste das gewünschte Paket auswählen.

Es werden alle verfügbaren Versionen des jeweiligen Pakets aufgelistet.

Neue composer.json-Datei erstellen

Neue composer.json-Datei erstellen

Beim Anlegen eines neuen Projekts können Sie mithilfe der Vorlage in der IDE eine composer.json-Datei erstellen. Klicken Sie mit der rechten Maustaste auf den Projektbaum und wählen Sie New -> composer.json File.

Pakete aktualisieren und installieren

Pakete aktualisieren und installieren

Wenn in composer.json eine noch nicht installierte Abhängigkeit angegeben ist, erkennt PhpStorm dies und hebt die Abhängigkeit hervor.

Drücken Sie zum Installieren Alt-Enter und wählen Sie Update package oder Update all packages.

Zu Dateien und Ordnern navigieren

Zu Dateien und Ordnern navigieren

Wenn Sie mit gedrückter Cmd(Strg)-Taste auf ein Paket klicken, markiert PhpStorm den Ordner dieses Pakets im vendor-Verzeichnis der Projektstruktur. Dateien werden durch diese Aktion im Editor geöffnet.

Cmd(Strg)+Klick bzw. Cmd(Strg)+B können Sie auch nutzen, um einen beliebigen Link in der composer.json-Datei in einem Browser zu öffnen.

Skripte erstellen und ausführen

Skripte erstellen und ausführen

Zu jedem Eintrag im Abschnitt Skripte wird in der Randleiste ein Wiedergabesymbol angezeigt. Wenn Sie dieses Symbol anklicken, wird das Skript sofort ausgeführt.

Wenn Sie einen neuen Skripteintrag hinzufügen, bietet die Auto-Completion jetzt Skriptreferenzen, Binärdateien aus dem vendor/bin-Verzeichnis und PHP-Dateien aus Ihrer Projektquelle an.

Code-Coverage mit PCOV und PHPDBG

PSR-12

Neben Xdebug können Sie jetzt auch die leichtgewichtige PHP-Erweiterung krakjoe/pcov oder das eingebaute PHPDBG verwenden, um Coverage-Berichte viel schneller zu erstellen.

Sie können Run-Konfigurationen für Tests erstellen. In den Einstellungen der Run-Konfiguration gibt es eine Dropdown-Liste, in der Sie Ihren bevorzugten Coverage-Treiber auswählen können: Xdebug, PCOV oder PHPDBG.

Wählen Sie den gewünschten Treiber aus und klicken Sie in der Hauptsymbolleiste auf Run with Coverage. Die Coverage-Ergebnisse werden Ihnen angezeigt.

PHPUnit-Toolbox

WSL-Interpreter hinzugefügt

PhpStorm 2020.1 bietet Ihnen Tools, mit denen Sie schnell und einfach auf die neueste PHPUnit-Version upgraden können.

Jede Deprecation wird im Editor hervorgehoben. Bewegen Sie den Mauszeiger auf ein als „deprecated“ gekennzeichnetes Element, drücken Sie Alt+Enter und wählen Sie aus der angezeigten Liste den gewünschten Quick-Fix aus. Sie können den Quick-Fix auch einfach im unteren Bereich des Fehlerbeschreibungsfensters auswählen.

Um schnell eine neue PHPUnit-Testklasse zu erstellen, können Sie jetzt die Intention Create new PHP Test verwenden, indem Sie über einem Klassennamen Alt+Enter drücken.

Verbesserte PHP-Typinferenz

Das Herzstück von PhpStorm – die Typinferenz-Engine – hat einige erfreuliche Verbesserungen erhalten.

Typisierte Eigenschaften

Erkennung redundanter @var-Tags

Wenn ein @var-Tag mit Typinformationen redundant ist und PhpStorm den Typ der Variablen bereits kennt, wird dieses Tag hervorgehoben. Sie können es mit dem Quick-Fix Remove @var leicht löschen. Drücken Sie dazu Alt+Enter.

Pfeilfunktionen

Bessere Null-Erfassung

Das Verfolgen von Null-Werten ist eine schwierige Aufgabe, und es gab bisher einige Stellen, an denen PhpStorm sie nicht erkannte. Bei Version 2020.1 ist dies nicht mehr der Fall. Mit PhpStorm wissen Sie stets, ob eine Variable null ist oder nicht, und können diesbezügliche Probleme vermeiden.

Trennzeichen für Zahlenliterale

Code-Completion in array_map/filter

Es gibt jetzt eine vollwertige Code-Completion für Parametervariablen innerhalb der Closures, die an die Funktionen array_map() und array_filter() übergeben werden.

Geschachtelter ternärer Operator

Nichtgenerischen Array-Typ aus Initialisierer erkennen

Beim Iterieren über ein Array mit bekannten Elementen benötigen Sie kein zusätzliches @var-Tag zur Angabe des Typs mehr, da PhpStorm diesen automatisch propagiert.

Und vieles mehr

ML-unterstützte Gewichtung bei der Code-Completion

ML-unterstützte Gewichtung bei der Code-Completion

Bereits in Version 2019.3 haben wir bei der PHP-Completion ein durch maschinelles Lernen unterstütztes Ranking eingeführt. Diese Funktion verbessert die Code-Completion, indem die Elemente im Completion-Popup in der Reihenfolge ihrer Relevanz angeordnet werden.

Standardmäßig ist die ML-gestützte Vervollständigung deaktiviert. Zum Einschalten aktivieren Sie die Kontrollkästchen Rank completion suggestions based on Machine Learning und PHP unter Preferences/Settings | Editor | General | Code Completion.

Refaktorierung „Move method“

Refaktorierung „Move method“

Das Verschieben einer Methode von einer Klasse in eine andere ist jetzt einfacher, da es mit einer einzigen atomaren Aktion erfolgen kann.

Bewegen Sie den Cursor auf eine Methode und drücken Sie F6 (oder Strg+T, 3). Dann müssen Sie nur noch die Zielklasse auswählen.

PHPDoc mit nur Typ-Annotations entfernen

PHPDoc mit nur Typ-Annotations entfernen

Wenn ein PHPDoc-Block nur @param-Tags mit Typangaben enthält, kann er vollständig durch native Parameter-Typdeklarationen ersetzt werden.

Drücken Sie Alt+Enter und wählen Sie den Quick-Fix Remove redundant PHPDoc comment.

Redundante ternäre Ausdrücke finden

Redundante ternäre Ausdrücke finden

PhpStorm hebt alle ternären Ausdrücke hervor, die reduziert und vereinfacht werden können. Und ein Quick-Fix (Alt+Enter) ersetzt sie problemlos durch einen einfacheren, gleichwertigen Ausdruck.

Redundante Pass-by-Ref-Vorkommen beseitigen

Redundante Pass-by-Ref-Vorkommen beseitigen

Die Übergabe von Referenzen als Parameter kann unerwartete Konsequenzen haben. PhpStorm 2020.1 erkennt Parameter, die unnötigerweise als Referenzen übergeben werden, und hebt diese hervor.

Gleiches gilt für redundante By-Ref-Werte in foreach-Schleifen.

Metadaten

Es gibt eine Möglichkeit, die Code-Analyse durch PhpStorm zu verbessern, indem zusätzliche Informationen in der speziellen Datei .phpstorm.meta.php bereitgestellt werden. In diesem Bereich haben wir mehrere Verbesserungen vorgenommen.

Parameterindex in override, map und type

Parameterindex in override, map und type

Bisher konnte bei den Direktiven override(), map() und type() nur das Verhalten des ersten Funktionsparameters angepasst werden. In PhpStorm 2020.1 wurde dies korrigiert. Der Index des Parameters kann jetzt explizit angegeben werden.

Pfeilfunktionen

Eigenschaftenzugriff über __get

Wenn Sie bisher die magische Methode __get() verwenden mussten, um auf bestimmte Objekte zuzugreifen, führte dies in der Regel zum Verlust der Typinformationen. Statt in @var- oder @property-Tags können Sie diese Informationen jetzt in einer .phpstorm.meta.php-Datei angeben. Dies kann selbst dann funktionieren, wenn der Typ nicht im Vorfeld bekannt ist.

Benutzerdefinierte Ausstiegspunkte

Benutzerdefinierte Ausstiegspunkte

PhpStorm interpretiert die Funktionen die() und exit() sowie Funktionen, die eine Ausnahme auslösen, als Ausstiegspunkte. In Anwendungen kann es jedoch weitere benutzerdefinierte Funktionen geben, die als Ausstiegspunkte zu betrachten sind – zum Beispiel in Debugging-Funktionen wie dd(). Jetzt ist es möglich, beliebige Funktionen als Ausstiegspunkte zu kennzeichnen.

Vervollständigung von Schlüsseln in ArrayAccess-Objekten

Vervollständigung von Schlüsseln in ArrayAccess-Objekten

Dank der Metadatenunterstützung war es bisher schon möglich, die Codevervollständigung auch dann zu nutzen, wenn ein Objekt als Array-Container für andere Objekte verwendet wurde. Für Schlüssel stand die Vervollständigung jedoch nicht zur Verfügung. In 2020.1 haben wir dies nun nachgeholt.

Randleistensymbol für Funktionen mit Meta-Overrides

Randleistensymbol für Funktionen mit Meta-Overrides

Im Editor können Sie jetzt sehen, wenn ein Verhalten durch die .phpstorm.meta.php-Datei mittels override(), exitPoint() oder requireArguments() geändert wurde. Und da ein Projekt beliebig viele solcher Metadateien enthalten kann, können Sie durch Anklicken des Symbols die Datei öffnen, die an dieser konkreten Stelle verwendet wird.

HTTP-Client

PHP Debug im HTTP-Client

PHP Debug im HTTP-Client

Beim Entwickeln von Webanwendungen oder API-Endpunkten können Sie jetzt problemlos zum Debuggen wechseln, ohne das PhpStorm-Fenster zu verlassen.

Erstellen oder öffnen Sie dazu eine .http-Datei, geben Sie eine Anfrage ein und drücken Sie dann Alt+Enter, um mit einer Intention PHP Debug auszuführen. Dadurch wird der Anfrage ein XDEBUG_SESSION-Cookie hinzugefügt. Die Funktionsweise ähnelt dem Vorgehen der Xdebug-Browsererweiterung.

Web-Technologien

Alle neuen Funktionen und Verbesserungen von WebStorm 2020.1 sind auch in PhpStorm 2020.1 verfügbar – entweder als integrierte Funktionen oder als kostenlose Plugins, die im Plugin-Marketplace zur Verfügung stehen.

Neue, intelligente Intentions und Inspektionen für JavaScript und TypeScript

Neue, intelligente Intentions und Inspektionen für JavaScript und TypeScript

Mit den neuen intelligenten Intentions und Inspektionen (Alt+Enter) können Sie beim Programmieren viel Zeit sparen! So können Sie zum Beispiel vorhandenen Code ohne Aufwand für die Verwendung von optionaler Verkettung und/oder Nullish-Coalescing konvertieren – zwei Syntaxmerkmale, die in den neuesten Versionen von JavaScript und TypeScript eingeführt wurden.

Vuex- und Composition API-Unterstützung für Vue.js

Vuex- und Composition API-Unterstützung für Vue.js

Dank der integrierten Unterstützung für die Vuex-Bibliothek und die Composition-API der bevorstehenden Vue-Version 3 können Sie jetzt noch einfacher großartige Vue.js-Anwendungen erstellen.

Prettier beim Speichern ausführen

Prettier beim Speichern ausführen

Mit der neuen Option Run on save for files bietet WebStorm die Möglichkeit, alle bearbeiteten Dateien, die in den IDE-Einstellungen angegeben wurden, beim Speichern mit Prettier zu formatieren – eine Dateiüberwachung oder ein Drittanbieter-Plugin ist jetzt nicht mehr erforderlich.

IDE

Intelligente Grammatik- und Rechtschreibprüfung

Intelligente Grammatik- und Rechtschreibprüfung

Das fortschrittliche Plugin Grazie für Sprachkorrektur und Grammatikprüfung befindet sich ab sofort im Installationsumfang. Vertipper und andere sprachliche Fehler werden sofort hervorgehoben und können wie auch andere Codeprobleme durch einen Quick-Fix behoben werden.

Die Rechtschreibprüfung ist in Markdown-Dateien standardmäßig aktiviert. Um PHPDoc-Kommentare, HEREDOC/NOWDOC-Strings oder Stringliterale in PHP-Dateien zu prüfen, aktivieren Sie die Funktion unter Preferences/Settings | Editor | Proofreading | Grammar.

Um noch umfassendere Grammatikprüfungen durchzuführen, aktivieren Sie die Grammar-Inspektion unter Preferences/Settings | Editor | Inspections -> Proofreading.

Einzeldateien mit PhpStorm bearbeiten

Einzeldateien mit PhpStorm bearbeiten

Ein neuer LightEdit-Modus ermöglicht es, PhpStorm als einfachen Texteditor zu verwenden, um schnelle Änderungen an Dateien vorzunehmen, ohne die vollständige IDE hochzufahren.

Zum Ausprobieren öffnen Sie eine Datei über die Befehlszeile (siehe IDE-Funktionen mittels Befehlszeile verwenden für weitere Informationen) oder über den Dateimanager Ihres Betriebssystems. Wenn PhpStorm noch nicht ausgeführt wird, wird die Datei im LightEdit-Modus geöffnet.

Individualisierung des Datumsformats

Terminalsitzungen horizontal oder vertikal teilen

Sie können jetzt beliebig viele Terminalsitzungen öffnen und die Ausgabe aller Sitzungen gleichzeitig beobachten, ohne zwischen Tabs hin und her wechseln zu müssen.

Rufen Sie das Kontextmenü des Terminals auf, um eine geteilte Terminalsitzung zu erstellen oder zu schließen bzw. um zwischen den Sitzungen zu navigieren.

Zentrale SSH-Konfiguration

Zentrale SSH-Konfiguration

Alle SSH-Verbindungen sind jetzt an einem zentralen Ort zusammengefasst: Preferences/Settings | Tools | SSH Configurations.

Auf diese Weise können Sie eine einmal erstellte Verbindung an beliebig vielen Stellen in der IDE wiederverwenden – in der Deployment-Konfiguration, für einen Remote-PHP-Interpreter über SSH oder für ein SSH-Terminal.

Erscheinungsbild

Überarbeitetes helles Design

Überarbeitetes helles Design

Das helle Design wurde auf allen Betriebssystemen vereinheitlicht und heißt jetzt IntelliJ Light. Wenn Sie zum alten Design zurückkehren möchten, haben Sie unter Preferences/Settings | Appearance & Behavior | Appearance | Theme die Möglichkeit dazu.

Individualisierung des Datumsformats

Neue Standardschrift

JetBrains Mono ist eine kostenlose Open-Source-Schriftart, die wir speziell für Entwickler konzipiert haben, um das Lesen von Code zu erleichtern. Sie wird jetzt als Standardschrift im Editor verwendet.

Neuer Modus für ablenkungsfreies Programmieren

Neuer Modus für ablenkungsfreies Programmieren

Der neue Zen-Modus kombiniert den Distraction Free Mode mit der Vollbildansicht – so können Sie tief in Ihren Code eintauchen.

Probieren Sie den Zen-Modus unter View | Appearance | Enter Zen Mode aus.

Versionsverwaltung

Überarbeiteter Dialog für Git Rebase

Überarbeiteter Dialog für Git Rebase

Der Dialog Interactively Rebase from Here ist jetzt wirklich interaktiv und gibt Ihnen Kontrolle über alle Aspekte des Rebase-Vorgangs:

  • Wählen Sie für jeden Commit in Ihrem Branch eine auszuführende Aktion aus.
  • Überprüfen Sie anhand eines Diagramms, welche Aktionen angewendet wurden.
  • Sehen Sie sich die Commit-Details an.
  • Lassen Sie sich einen Diff anzeigen, überprüfen Sie die Änderungen und setzen Sie sie bei Bedarf zurück.
Beliebigen Branch pushen

Änderungen am Commit-Flow

Um den Commit-Flow zu optimieren, haben wir ein neues Commit-Toolfenster konzipiert, das Sie bei allen Commit-bezogenen Aufgaben unterstützt. Es ist standardmäßig für alle neuen Benutzer aktiviert.

Wenn Sie als bestehender Benutzer das neue Fenster ausprobieren möchten, aktivieren Sie Use non-modal commit interface unter Preferences/Settings | Version Control | Commit.

Datenbank-Tools

Das DataGrip-Team hat einige wirklich coole Verbesserungen zu den Datenbank-Tools in PhpStorm beigesteuert. Erfahren Sie mehr unter Das ist neu in DataGrip 2020.1.

Nach Excel exportieren

Nach Excel exportieren

Endlich können Sie Abfrageergebnisse oder Tabellen in eine Excel-Datei exportieren.

Ergebnisanzeige im Editor

Ergebnisanzeige im Editor

Ergebnisse können jetzt direkt im Code-Editor angezeigt werden. Um diese Funktion auszuprobieren, aktivieren Sie die Option Preferences/Settings | Database | General | Show output results in the editor.

Laufzeitkonfigurationen

Laufzeitkonfigurationen

Als PhpStorm-Benutzer dürften Sie mit Run-Konfigurationen bestens vertraut sein. Neben der Ausführung von PHP-Skripten, Tests oder HTTP-Anfragen können damit jetzt auch Datenbankabfragen ausgeführt werden.

Weitere Verbesserungen:

  • Alle als @deprecated gekennzeichneten Member und Elemente werden in der Strukturansicht durchgestrichen angezeigt.
  • Mit einer neuen Aktion können Sie schnell zur schließenden oder öffnenden Klammer springen.
  • Die Lexer-Syntax für Twig kann jetzt individuell angepasst werden.
  • Der Pfad für Konfigurationsdateien hat sich geändert – hier erfahren Sie mehr dazu.
  • Run-Konfigurationen können außerhalb des .idea-Ordners gespeichert und über die Versionsverwaltung geteilt werden. Öffnen Sie den Dialog Run/Debug Configurations und aktivieren Sie die Option Store as project file.