
Hallo Habr!
Wir freuen uns, die erste Hauptversion von PhpStorm in diesem Jahr präsentieren zu können!
Eine Übersicht über die Version finden Sie auf der Seite
„Was ist neu?“ . Und unter dem Schnitt eine Übersetzung dieser Seite mit einer Demonstration der interessantesten neuen Funktionen.
Sie können die neue Version auf der
Website oder über die
Toolbox-App herunterladen. Wie immer steht eine 30-Tage-Testversion zur Verfügung. Die Vollversion kann von Inhabern eines
aktiven Abonnements für PhpStorm oder All Products Pack kostenlos und von
Studenten und
Entwicklern von Open Source-Projekten verwendet werden.
Insgesamt wurden 1118 Fehler in der Version behoben und viele neue Funktionen hinzugefügt. Hier sind die interessantesten.
Debuggen von Zweig- und Klingenvorlagen
Dank des Debuggers können Sie den eingängigsten Fehler schnell beheben. Um jedoch Probleme in den Vorlagen zu finden, müssen Sie durch den Dschungel des maschinengenerierten Codes waten. In PhpStorm 2019.1 haben wir die Möglichkeit hinzugefügt, ursprüngliche nicht kompilierte
.twig- und
.blade.php- Vorlagendateien zu debuggen.
Geben Sie dazu einfach den Pfad zu den kompilierten Vorlagen (Cache) in den IDE-Einstellungen an:
Languages & Frameworks | Php | Debug | Vorlagen für
Zweig oder
Klinge .
Im Fall von Twig müssen Sie in der Konfiguration auch die
auto_reload
debug
und
auto_reload
angeben.
Und für Blade funktioniert alles automatisch, jedoch erst ab Laravel 5.8.
Danach können Sie den Debugger einschalten und einen Haltepunkt direkt in der Vorlage festlegen. Die Ausführung wird am angegebenen Speicherort angehalten, und alle üblichen Debugging-Optionen stehen zur Verfügung: schrittweise Ausführung, lokale und globale Variablen, Wertverfolgung (Watch) und alles andere.

Apropos Debugging: Wir unterstützen den Autor von Xdebug Derick Rethans aktiv dabei, den Debugger zu verbessern,
akkumulierte Probleme zu lösen und die Möglichkeiten seiner Verwendung in PhpStorm zu erweitern.
Dead Code Detection
PHP feiert dieses Jahr sein 24-jähriges Bestehen und es ist nicht verwunderlich, dass Sie häufig auf Legacy-Code stoßen. Das erste, was Sie tun möchten, ist, den Überschuss zu reinigen und zu entfernen. Die neue Überprüfung der
nicht verwendeten Erklärung wird in dieser Angelegenheit nur helfen.
PhpStorm 2019.1 kann Ihren Code im laufenden Betrieb analysieren und direkt im Editor die Klassen, Klassenmitglieder und Funktionen hervorheben, die wahrscheinlich nirgendwo verwendet werden.

Sie können auch alle nicht verwendeten Elemente im Stapelmodus finden. Rufen Sie dazu das Menü
Code -> Inspektion nach Name ausführen auf und wählen Sie die
Inspektion Nicht verwendete Deklaration aus . Sie erhalten einen Bericht mit einer Liste aller Probleme mit einer Beschreibung und schnellen Lösungen.

Neues Refactoring und schnelle Aktion
Traditionell haben wir mehrere neue Refactorings hinzugefügt, um Routinemaßnahmen schnell und fehlerfrei zu gestalten.
String-ManipulationWenn Sie bei einem Zeichenfolgenausdruck
Alt + Eingabetaste drücken, wird eine vollständige Liste der verfügbaren Konvertierungen angezeigt. Zum Beispiel gibt es bereits eine Konvertierung von / nach NOWDOC / HEREDOC, das Ersetzen von Anführungszeichen und das Aufteilen einer Zeichenfolge in zwei Teile mit Verkettung.
In dieser Version haben wir einige weitere praktische Dinge hinzugefügt: Kopieren der verketteten Zeichenfolge in den Puffer, Ersetzen der Zeichenfolgenverkettung durch Interpolation oder Aufrufen der Funktion
sprintf () und dementsprechend die umgekehrten Aktionen:
Nicht verwendete Variablen entfernenDie neue Inspektion erkennt und ermöglicht es Ihnen, eine nicht verwendete Variable in Zuweisungsoperationen zu entfernen und Konstrukte in Abschlüssen zu verwenden.
Refactoring In die Klasse wechselnMit diesem Refactoring können Sie Funktionen sicher von PHP-Dateien in Klassen übertragen. PhpStorm aktualisiert alle Aufrufe dieser Funktionen.

Wenn Sie die Reihenfolge wiederherstellen, müssen Sie möglicherweise mehrere Funktionen gleichzeitig verschieben - dies wird auch von PhpStorm unterstützt. Sie müssen die gewünschten Funktionen im Strukturfenster auswählen und dann das Refactoring "In Klasse verschieben" aufrufen.
Die Inspektionsmethode kann statisch sein.Bei dieser Überprüfung werden Methoden ermittelt, die in statische konvertiert werden können, dh solche, die keine Instanz der Klasse verwenden. Für solche Methoden steht eine kontextbezogene Aktion zur Verfügung. Sie können die Alt-Eingabetaste drücken und "Statisch machen" auswählen. Wie erwartet werden alle Anrufe automatisch behoben.

Verbesserte Mechanismen zur automatischen Vervollständigung
Mit der Datei .phpstorm.meta.php können Sie der IDE mitteilen, welche Argumente in der Funktion erwartet werden oder welche Werte sie zurückgeben kann. PhpStorm verwendet diese Informationen zur automatischen Vervollständigung.
Angenommen, eine Funktion erwartet eine Art Konstante als Argument. Formal ist der Typ dieser Konstante beispielsweise eine
integer
, aber in Wirklichkeit kennen wir die Menge möglicher Konstanten.
Zum Beispiel
json_encode($data, /* JSON_* */)
Wir können auch eine Funktion haben, die eine Konstante zurückgibt, zum Beispiel
json_last_error()
.
In PhpStorm 2019.1 funktioniert die automatische Vervollständigung für diese und viele andere integrierte Funktionen bereits sofort:


Darüber hinaus kann eine solche automatische Vervollständigung in jedem Projekt / jeder Bibliothek / jedem Framework durchgeführt werden, indem dem Projekt einfach eine spezielle .phpstorm.meta.php-Datei hinzugefügt wird. Und es kann viele solcher Dateien geben, PhpStorm wird sie finden und kombinieren.
Beispielsweise existieren solche Dateien für Symfony bereits in Form des
King2500 / symfony-phpstorm-meta- Pakets - es wird mit dem
Symfony-Plugin geliefert .
Lesen Sie mehr im Beitrag
über neue Funktionen .phpstorm.meta.php .
Optimierung importieren
Das System zur Analyse und Korrektur der Einfuhren wurde leicht überarbeitet. PhpStorm schlägt nun nach Möglichkeit vor, den vollständigen Namen der Klasse durch Import zu ersetzen oder ihn ganz zu entfernen, wenn er redundant ist.
Außerdem wurde die Möglichkeit hinzugefügt,
use
alphabetisch oder nach Länge zu sortieren.
Codebereinigung Codebereinigungstool
Dieses Tool ermöglicht sichere Stapelkonvertierungen. Zum Beispiel im gesamten Projekt auf einmal, in einem bestimmten Verzeichnis usw.
Es ist seit langem in PhpStorm verfügbar, aber erst 2019.1 wurden die Funktionen für PHP hinzugefügt. Erstens unterstützt es zwei Korrekturwerkzeuge für den Codierungsstil: PHP CS Fixer und phpcbf von PHP_CodeSniffer. Sowie zwei Inspektionen zur Optimierung der Importe aus dem vorherigen Absatz.

Dieses Tool kann jederzeit manuell oder vor dem Festschreiben gestartet werden, indem einfach das entsprechende Dialogfeld im Festschreibungsdialogfeld überprüft wird:

Wiederverwendung von Docker-Containern
Unterstützung für das Starten von Docker-Containern in den Modi Docker-Compose Run und Docker-Compose Exec hinzugefügt. Der erste Modus eignet sich für leichte Container, die unmittelbar nach dem Start anhalten. Mit der zweiten Option können Sie laufende Container wiederverwenden, ohne neu starten zu müssen.
Unter anderem Verbesserungen:- Flexible PHPDoc-Einstellungen: Sie können die Reihenfolge der Elemente und Einrückungen in den Einstellungen | anpassen Editor | Codestil | PHP- Registerkarte PHPDoc;
- Die Standard-PHP-Dateivorlage wird gelöscht - nicht mehr erstellt von PhpStorm;
- Neue Schnellaktion zum Hinzufügen einer Klasseneigenschaft zum Konstruktor;
- Sie können den strengen Modus global aktivieren.
auch wenn die Dateien nicht die Anweisung declare(strict_types = 1);

Vcs
Das Versionskontrollsystem hat viele nützliche Verbesserungen vorgenommen:
- Fixup- und Squash-Aktionen zum Git-Protokoll hinzugefügt;
- Wenn Sie Unterschiede anzeigen, können Sie jetzt Bedienfelder austauschen.
- Push with Force ist jetzt sicherer, da das
--force-with-lease
verwendet wird. - Die Option Alle deaktivieren für Teil-Commits wurde zum Commit-Dialogfeld hinzugefügt. Mit dieser Option können Sie alle Änderungen deaktivieren und dann nur die erforderlichen auswählen:

IDE-Verbesserungen
Dialogfeld "Letzte Standorte"Die meiste Zeit, wenn Entwickler an einer Aufgabe arbeiten, müssen sie Code lesen, nicht schreiben. Daher ist eine schnelle Navigation zwischen Dateien immer sehr relevant. PhpStorm hatte bereits ein Popup
- Fenster "
Überall suchen"
( Umschalt-Umschalt ) ,
Lesezeichen und Favoriten ( Cmd + 2 / Alt + 2 ), mit dem die Story hin und her verschoben werden konnte ( Cmd + [ - Cmd +] / Strg + Alt + Links - Strg + Alt + Rechts) ) oder zeigen Sie die neuesten Dateien an ( Cmd + E / Ctrl + E ) .
In PhpStorm 2019.1 haben wir eine weitere interessante Funktion hinzugefügt - das Dialogfeld "Letzte Standorte" (
Befehlstaste-Umschalttaste-E / Strg + Umschalttaste + E) , in dem die letzten Codeteile angezeigt werden, die Sie angezeigt oder bearbeitet haben. Dies kann nützlich sein, wenn Sie sich schnell durch den Verlauf bewegen und den Kontext anzeigen möchten, um genau zu verstehen, wohin Sie sich bewegen müssen.
Neue SchnittstellenthemenPhpStorm enthält drei Themen: Light, Darcula und High Contrast. Wenn Sie etwas Neues ausprobieren möchten, installieren Sie eines der neuen Themen:
Dark Purple ,
Grey oder
Light Cyan . Jetzt können Sie auch selbst Themen erstellen, während Sie die Farbe eines Elements oder Symbols festlegen können. Lesen Sie mehr
in der Dokumentation .
Soft-Wraps je nach DateitypWenn Sie häufig mit Markdown- oder Textdateien arbeiten, wird der Zeilenumbruch für diese Dateien automatisch aktiviert. Sie können auch andere Dateitypen in den
Einstellungen | angeben
Editor | Allgemeines | Soft-Wrap-Dateien.PhpStorm enthält wie immer alle Updates von WebStorm :Die Dokumentation der CSS-Eigenschaften, HTML-Tags und der Browserunterstützung stammt jetzt aus MDN und enthält Links zu verwandten Artikeln. Die TypeScript-Unterstützung für Vue-Anwendungen wurde verbessert, 17 neue Inspektionen für Angular-Anwendungen wurden hinzugefügt und neue Debugger-Panels für JavaScript und Node.j wurden angezeigt interaktive Konsolen.
... und von DataGrip :Jetzt zusätzlich unterstützt Greenplum, Vertica, Apache Hive; Jetzt können Sie den Standardprojektordner auswählen. sowie verbesserte Mittel zur Vervollständigung von Strukturen und Attributen.
Dies ist alles, worüber wir sprechen konnten - aber nicht alles, was in der Veröffentlichung enthalten war. Eine vollständige Liste der Änderungen finden Sie wie immer in den sehr umfangreichen
Versionshinweisen .
Vielen Dank für Ihre Aufmerksamkeit!
JetBrains PhpStorm Team