Что нового в PhpStorm 2019.3

Третье крупное обновление PhpStorm в 2019 году несет в себе много возможностей для повышения продуктивности

Поддержка PHP 7.4

PhpStorm 2019.3 поддерживает все нововведения PHP 7.4. IDE подсвечивает устаревший код и предлагает быстрые исправления для обновления кодовой базы.

Типизированные свойства

Типизированные свойства

Поддержка типизированных свойств появилась еще в предыдущей версии. В PhpStorm 2019.3 быстрые исправления помогают справиться со всеми затруднениями, и вы можете быстро добавлять объявления типов, нажав Alt-Enter и выбрав действие Add declared type for the field. PhpStorm определяет тип автоматически на основании PHPDoc, исходного значения или объявления типа аргумента в конструкторе.

Стрелочные функции

Стрелочные функции

PhpStorm полностью поддерживает новый компактный синтаксис однострочных лямбда-функций из PHP 7.4. В IDE работает автодополнение для переменных из внешней области, и вы можете перейти к нужному объявлению в один клик.

В PhpStorm есть быстрое исправление для преобразования однострочных лямбда-функций из старого синтаксиса в новую сокращенную запись. Просто нажмите Alt-Enter на анонимной функции и выберите действие Convert closure to arrow function.

Разделитель числовых литералов

Разделитель числовых литералов

PHP 7.4 позволяет добавить в длинное число разделитель в виде знака подчеркивания, чтобы улучшить читаемость кода.

Если вам встретилось длинное число, поместите на него курсор, нажмите Alt+Enter и выберите Add number separators. PhpStorm добавит нижнее подчеркивание «_» после каждой третьей цифры в десятичных числах и каждой четвертой цифры в шестнадцатеричных, двоичных и восьмеричных числах.

Вложенный тернарный оператор

Вложенный тернарный оператор

В PHP 7.4 левая ассоциативность вложенных операторов ?: объявлена устаревшей. Вам придется либо совсем отказаться от тернарных операторов с вложенностью, либо, если они все-таки необходимы, использовать круглые скобки, чтобы указать порядок вычислений явно.

PhpStorm 2019.3 подсвечивает устаревшие выражения и предлагает быстрые исправления, чтобы обновить их.

Устаревший синтаксис

Устаревший синтаксис

В новой версии PHP некоторый синтаксис считается устаревшим.

В PhpStorm 2019.3 предусмотрены соответствующие инспекции: IDE выделит фрагменты кода, которые требуют внимания. Там, где это возможно, PhpStorm предложит быстрое исправление для обновления поведения.

Ковариантные возвращаемые типы и контравариантные параметры

Ковариантные возвращаемые типы и контравариантные параметры

В PHP 7.4 исправлено несколько несоответствий, в том числе одно, затрагивающее систему типов. Для метода, унаследованного из родительского класса, теперь можно определить более конкретный тип возвращаемого значения и менее конкретные типы параметров.

PSR-12

PSR-12 дополняет предыдущий стандарт PSR-2 правилами и рекомендациями по использованию новых возможностей PHP. Новый стиль кода включен в PhpStorm 2019.3, и IDE предложит на него перейти. Чтобы переключиться на PSR-12 вручную, используйте действие Set from… в меню Preferences | Editor | Code Style | PHP.

PhpStorm также предложит включить набор инспекций для поиска несоответствий определенным правилам PSR-12.

Вы можете изменить оформление кода в редакторе, нажав Cmd+Alt+L, или запустить форматирование перед коммитом. Также можно изменить форматирование в отдельной папке или по всему проекту с помощью действия Code > Code Cleanup...

WSL

WSL: добавление интерпретатора

Windows Subsystem for Linux — это оболочка совместимости для запуска двоичных исполняемых файлов Linux в Windows 10. PhpStorm теперь поддерживает разработку в WSL: можно запускать IDE на Windows и разрабатывать приложения для Linux. Вы можете указать удаленный интерпретатор PHP в WSL и использовать его для запуска скриптов, тестов и команд Composer, а также для выполнения отладки.

Выбор удаленного интерпретатора для конфигураций запуска тестов

Выбор удаленного интерпретатора для конфигураций запуска тестов

Раньше конфигурации запуска тестов можно было выполнять только через интерпретатор PHP, указанный для проекта по умолчанию, что не всегда удобно.

Больше такого ограничения нет. В PhpStorm 2019.3 вы можете выбрать любой настроенный удаленный интерпретатор для запуска тестов: Docker, Vagrant, работающий через SSH, WSL или любой другой!

И еще

Улучшения в работе с PHPDoc

Улучшения в работе с PHPDoc

Раньше блоки PHPDoc отображались одним цветом и выглядели как обычные комментарии.

Теперь в них работает полноценная подсветка типов, переменных, параметров, методов и свойств. Кроме того, если в комментарии есть HTML-код, IDE выделит его соответствующим образом.

Выбор цвета и шрифта для переменной $this

Выбор цвета и шрифта для переменной $this

Вы можете выбрать шрифт и цвет для переменной $this: перейдите в Preferences | Editor | Color Scheme | PHP | Identifiers и настроите ее внешний вид, как вам нравится.

Подсветка PHP в файлах Markdown и строковых литералах

Подсветка PHP в файлах Markdown и строковых литералах

PhpStorm 2019.3 автоматически подсвечивает блоки PHP-кода в файлах Markdown, если вы укажете php в качестве информационной строки. Кроме того, подсветка PHP работает в строковых литералах благодаря специальному диалекту InjectablePHP, аналогичному PHP, но не требующему открывающего тега.

Контекстные действия для if-else
Extract assignment (извлечь оператор присваивания)

Extract assignment (извлечь оператор присваивания)

Merge nested conditions (объединить вложенные условия)

Merge nested conditions (объединить вложенные условия)

Merge else followed by if (объединить else с последующим if)

Merge else followed by if (объединить else с последующим if)

HTTP-клиент

Посмотрите короткое видео о работе с HTTP-клиентом в PhpStorm, чтобы выполнять запросы правильно.

Панель инструментов в редакторе

Панель инструментов в редакторе

При открытии http-файла открывается панель инструментов, с которой легко выполнять популярные действия:

  • Add request — создать запрос из шаблона.
  • Convert from cURL — создать запрос, скопировав cURL в редактор.
  • Open Log — просмотреть список отправленных запросов и открыть/сравнить полученные ответы.
  • Examples — просмотреть коллекцию подходящих HTTP-запросов.
Динамические переменные

Динамические переменные

Мы добавили три динамические переменные, которые можно использовать в запросах:

  • $uuid – генерация нового UUID-v4.
  • $timestamp – текущая временная метка Unix.
  • $randomInt — случайное целое число от 0 до 1000.

Чтобы вставить эти переменные, куда нужно, используйте двойные фигурные скобки.

Выполнение цепочек запросов

Выполнение цепочек запросов

Вы можете записать несколько запросов в один http-файл. Это удобно, если вам нужно создавать цепочки запросов, в которых один запрос зависит от результата предыдущих.

Раньше приходилось выполнять каждый запрос по отдельности, а теперь можно выполнить все одним кликом.

Сворачивание запросов

Сворачивание запросов

Если вы отправляете запрос с длинным телом, например c составным содержимым или с несколькими заголовками, его можно свернуть для удобства чтения в редакторе.

Вы можете свернуть весь запрос, оставив только первую строку или тело, нажав на значок стрелки в поле редактора.

Поддержка веб-технологий

В новую версию PhpStorm вошли все функции и улучшения из WebStorm 2019.3. Некоторые поддерживаются по умолчанию, другие — через бесплатные плагины, которые можно скачать из Plugin Marketplace.

Улучшенная поддержка Vue.js

Улучшенная поддержка Vue.js

Новый интеншен Propagate to destructuring Alt+Enter позволяет заменять избыточные переменные еще одной деструктуризацией. Чтобы полностью удалить деструктурирующее присваивание, используйте действие Replace destructuring with property or index access.

Если логическое выражение в условии содержит необязательные части, IDE предупредит об этом и предложит упростить его.

Автодополнение кода для CSS-библиотек, добавленных через CDN

Автодополнение кода для CSS-библиотек, добавленных через CDN

Теперь при переименовании символа в JavaScript или TypeScript-файле IDE объединяет динамические использования в отдельную группу и по умолчанию исключает их из рефакторинга. Это позволяет проводить рефакторинг с большей точностью и дает вам возможность лучше контролировать переименование с помощью окна Refactoring Preview.

Автодополнение для новых символов

Автодополнение для новых символов

Используете Vuetify или BootstrapVue в своем приложении Vue.js? Мы повысили точность автодополнения кода для компонентов и свойств компонентов, входящих в эти и некоторые другие библиотеки компонентов Vue. Это возможно благодаря новому подходу к работе с библиотеками Vue-компонентов, который мы реализовали в IDE.

Система контроля версий

Обновленный интерфейс для получения проектов из VCS и GitHub

Обновленный интерфейс для получения проектов из VCS и GitHub

При скачивании проекта из системы контроля версий вы увидите обновленный диалог Get from Version Control, который отображается на начальном экране и в меню VCS.

Мы постарались упростить получение проектов из GitHub. Теперь вы можете выбрать GitHub в левой части диалога и войти в свой аккаунт прямо оттуда.

Отправка изменений из любой ветки

Отправка изменений из любой ветки

Теперь вы можете отправить изменения из любой ветки прямо в окне Branches: выберите нужную ветку и нажмите Push.

Раньше можно было отправить изменения только из той ветки, над которой вы работаете, причем сначала требовалось переключиться на эту ветку.

Настраиваемый формат даты

Настраиваемый формат даты

Просматривая историю изменений, легче воспринимать информацию, если дата отображается в привычном для вас формате, например дд/мм/гггг или мм/дд/гггг.

В PhpStorm 2019.3 можно настроить формат даты для действий VCS Annotate и VCS Log.

Инструменты для работы с базами данных

PhpStorm, как всегда, включает в себя новую функциональность, разработанную командой DataGrip. Все подробности здесь: Что нового в DataGrip 2019.3.

Поддержка MongoDB

В PhpStorm и других наших IDE появилась долгожданная поддержка MongoDB. В проводнике баз данных отображаются коллекции и поля, вы можете просматривать данные в виде дерева. Можно сортировать данные по столбцам и фильтровать значения, и конечно, выполнять запросы прямо в IDE.

Другие улучшения:

  • Ускоренный запуск: теперь начальный экран IDE появляется значительно быстрее, а открытие проиндексированных проектов занимает гораздо меньше времени.
  • Упрощенное управление плагинами: больше не нужно перезапускать IDE, когда вы устанавливаете или удаляете плагин темы интерфейса.
  • Улучшенная поддержка Kubernetes (через плагин).
  • Контрастные полосы прокрутки – Preferences/Settings | Appearance & Behavior | Appearance and enable the “Use contrast scrollbars”.
  • Поиск только по выделенной области.
  • Плавная прокрутка колесом мыши – Preferences | Appearance & Behavior | Appearance > Smooth scrolling.