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

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

Бесплатная пробная версия на 30 дней
Посмотреть 5-минутный обзор

Поддержка 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

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

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. Некоторые поддерживаются по умолчанию, другие — через бесплатные плагины, которые можно скачать из репозитория плагинов.

Улучшенная поддержка 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

При скачивании проекта из системы контроля версий вы увидите обновленный диалог 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.
Узнайте о PhpStorm 2019.2

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

В конце ноября ожидается релиз PHP 7.4. PhpStorm начинает внедрять поддержку новой версии заранее, чтобы у вас было время выполнить тестирование и начать планировать миграцию. Самым ожидаемым нововведением PHP 7.4, вероятно, являются типизированные свойства, которые уже полностью поддерживаются в PhpStorm 2019.2. Новые инспекции позволяют подсвечивать ошибки типизации, после чего вы можете обновить свою кодовую базу с помощью быстрого исправления Add declared type for the field. PhpStorm определяет тип автоматически на основании PHPDoc, исходного значения или объявления типа аргумента в конструкторе.

Автоматическое обнаружение дубликатов

Повторяющийся код затрудняет внесение изменений и может даже вызывать регрессионные ошибки, если вы забудете обновить все дублирующиеся части. PhpStorm помогает предотвратить появление дубликатов, автоматически подсвечивая их и делая легко заметными. Поэтому, если вы увидите ранее созданный дублирующийся код или случайно создадите его, вы сразу же об этом узнаете! Новая инспекция называется Duplicated code fragment и включена по умолчанию. Чтобы настроить ее, перейдите в раздел Preferences | Editor | Inspections | General. Нужные параметры можно установить в разделе Preferences | Editor | Duplicates. И конечно же, вы можете применить ее ко всему проекту или его части в любой момент, используя команду Code → Run Inspection by Name.

Подсветка и проверка регулярных выражений

С помощью регулярных выражений очень удобно производить поиск и замену строковых значений. В PhpStorm появилась возможность автоматической инъекции регулярных выражений в PHP. Это означает, что при использовании в вашем коде функций preg_* паттерн будет подсвечиваться и проверяться на корректность. Более того, теперь вы можете тестировать паттерны прямо в IDE! Переместите курсор на паттерн и нажмите Alt+Enter, чтобы увидеть быстрое действие Check RegExp.

Запуск Composer через любой удаленный интерпретатор PHP

Раньше для запуска Composer требовалось наличие локального интерпретатора PHP. Недостатком такого подхода было то, что локальная среда часто не отражала реальной рабочей конфигурации или могла вообще не содержать локального интерпретатора PHP. В PhpStorm 2019.2 вы можете выбрать любой удаленный интерпретатор для запуска Composer: Docker, Vagrant, работающий через SSH или любой другой.

Перейдите в раздел Preferences | Languages & Frameworks | PHP | Composer, выберите Remote Interpreter, после чего выберите интерпретатор в раскрывающемся списке или добавьте новый.

Интеншены и быстрые исправления

Новые интеншены в инструментарии манипулирования строками

Новые интеншены в инструментарии манипулирования строками

PhpStorm поставляется с нескольким интеншенами Alt+Enter для манипулирования строками. В версии 2019.2 появился еще один.

Если вам нужно внести новый параметр в выражение sprintf, просто выберите его, запустите интеншен Extract selected string part as format function argument и PhpStorm выберет правильное место для параметра. Это работает также и с конкатенацией.

Преобразование однострочного списка в многострочный и обратно

Преобразование однострочного списка в многострочный и обратно

В соответствии со стандартами PSR-2 строки длиннее 80 символов должны быть разбиты на несколько следующих друг за другом строк длиной не более 80 символов каждая. Поэтому если ваш список параметров или массивы стали слишком длинными, вы можете разделить их с помощью нового интеншена Alt+Enter Split comma-separated values into multiple lines. Для тех случаев, когда вам нужно объединить несколько элементов в одну строку, доступен обратный интеншен.

Интеншен и инспекции для операторов Switch

Интеншен и инспекции для операторов Switch

Появилась возможность добавлять ветки еще быстрее путем копирования и изменения уже существующих. Вы можете нажать Alt+Enter на case-операторе, не имеющем тела, после чего выбрать Copy ‘switch’ branch. Не забудьте внести изменения в скопированный код, поскольку PhpStorm предупредит вас, если блок switch содержит дублирующуюся ветку, т. е. операторы с одинаковым телом, что может либо являться избыточным кодом, либо быть следствием ошибки. Кроме того, если в switch-операторе отсутствует ветка default, PhpStorm 2019.2 позволяет вам быстро исправить это с помощью Alt+Enter.

Поддержка PHPT

Файлы .phpt обеспечивают простой способ написания функциональных тестов. Этот формат используется для тестирования ядра PHP. В PhpStorm 2019.2 встроена поддержка файлов .phpt, включающая подсветку разделов и скриптов, автоинъекцию языков PHP и INI в соответствующие разделы, автодополнение названий разделов, а также быстрый переход к файлам, на которые размещены ссылки в разделах EXTERNAL.

Docker

Инструментальное окно Services

Инструментальное окно Services

Docker теперь находится в новом окне Services. Данное окно служит центральной панелью для просмотра всех подключений и работающих процессов. На данный момент в PhpStorm здесь размещены Docker и подключения к базам данных.

Просмотр файловой системы Docker-контейнера

Просмотр файловой системы Docker-контейнера

Теперь вы можете просматривать файловую систему запущенного Docker-контейнера. Файловая система отображается в новой вкладке Files.

HTTP-клиент

Формат cURL в HTTP-клиенте

Формат cURL в HTTP-клиенте

Просто скопируйте строку запроса cURL из ваших браузерных инструментов разработки, документации, терминала или из любого другого источника, затем вставьте ее в файл .http в PhpStorm, и она будет автоматически сконвертирована в нужный формат. После этого вы можете поэкспериментировать со своим запросом, используя все эффективные возможности Smart completion.

Обеспечение сохранности cookie-файлов в HTTP-клиенте

Обеспечение сохранности cookie-файлов в HTTP-клиенте

Представьте, что вы сделали запрос для аутентификации в сервисе, а в последующих запросах собираетесь обратиться к конечным точкам, требующим дополнительных разрешений. Раньше это было невозможно, поскольку файлы cookie, полученные в результате первого запроса, не сохранились бы. Но теперь PhpStorm сохраняет все полученные файлы cookie и передает их при выполнении последующих запросов.

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

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

Интеллектуальные интеншены для JavaScript и TypeScript

Интеллектуальные интеншены для JavaScript и TypeScript

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

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

Улучшенный рефакторинг Rename для JavaScript

Улучшенный рефакторинг Rename для JavaScript

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

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

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

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

Подсветка синтаксиса для более чем 20 языков

Подсветка синтаксиса 20+ языков

PhpStorm 2019.2 «из коробки» обеспечивает подсветку синтаксиса для более чем 20 различных языков программирования, включая Ruby, Python, Go и пр. Механизм подсветки реализован с помощью интегрированных пакетов TextMate, поэтому, если вам нужен дополнительный язык, скачайте пакет для этого языка и импортируйте его в IDE.

EditorConfig

EditorConfig

PhpStorm теперь поддерживает файлы .editorconfig «из коробки»! Используйте столько, сколько вам нужно. Создавайте файлы в любой папке, после чего указанные настройки стиля кода будут применены только к файлам, размещенным в этой папке.

В дополнение ко всем стандартным свойствам стандарта EditorConfig вы также можете использовать специальные опции PhpStorm для стиля кода. Общие стандарты стиля кода для всей вашей команды теперь можно определить проще, чем когда-либо.

Shell-скрипты

Поддержка shell-скриптов

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

Мы интегрировали PhpStorm с несколькими внешними инструментами, чтобы дополнительно расширить поддержку скриптов командной оболочки. Теперь вы можете находить и исправлять ошибки в скриптах при помощи Shellcheck, улучшать их разметку при помощи mvdan/sh, а также нажатием Alt+Enter вызывать Explainshell для получения полного описания команд.

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

Встроенная поддержка файлов игнорирования

Теперь добавить файл в список игнорируемых файлов можно либо из дерева проекта, либо из вкладки Local Changes в окне VCS. Если вы предпочитаете редактировать файл .gitignore, вы можете использовать автодополнение пути в редакторе.

Новый процесс выполнения коммитов без диалоговых окон

PhpStorm 2019.2 вносит существенные изменения в работу с проектами, использующими Git или Mercurial. Теперь вы можете выполнять коммит файлов из вкладки Local Changes в окне Version Control. Здесь вы можете просматривать измененные файлы и при необходимости вносить изменения. Диалог коммита не блокирует остальную среду IDE. Чтобы опробовать эту функциональность, установите флажок Commit from the Local Changes without showing a dialog в разделе Preferences | Version Control | Commit Dialog.

Напоминание о забытых файлах

Напоминание о забытых файлах

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

Индивидуальная настройка вкладки Log (VCS)

Индивидуальная настройка вкладки Log (VCS)

Теперь вы можете выбрать, какие столбцы вы хотите видеть во вкладке Log окна Version Control. Нажмите на значок с изображением глаза, выберите команду Show Columns, а затем выберите столбцы, которые вы хотите отображать: «автор», «дата» или «хэш коммита».

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

Полнотекстовый поиск, предоставляющий исчерпывающие результаты

Полнотекстовый поиск, предоставляющий исчерпывающие результаты

Теперь вы можете находить нужные данные, даже если не знаете их точного расположения. Кликните правой кнопкой мыши на источнике данных или их группе, где вы хотите выполнить поиск. Затем выберите команду Full-text Search или нажмите Cmd+Alt+Shift+F.

Будут показаны только те строки, которые содержат нужные вам данные. Если вам не удается найти данные из-за большого количества столбцов, используйте текстовый поиск в редакторе данных: Cmd+F.

Фильтрация по источникам данных при поиске и навигации

Фильтрация по источникам данных при поиске и навигации

Найти нужный объект во всплывающем окне перехода бывает нелегко, поскольку в нем часто присутствует много похожих объектов. В PhpStorm 2019.2 вы можете выбрать, где выполнять поиск: по определенному источнику данных или по группе источников. Та же функциональность доступна и в окне Find in Path. Это крайне полезно при поиске исходного кода в DDL других объектов.

Узнайте о PhpStorm 2019.1

Отладка шаблонов Twig и Blade

Благодаря отладчику можно быстро разобраться с самым заковыристым багом и заглянуть вглубь кодовой базы. Но чтобы найти проблемы в шаблонах, придется пробираться через дебри машинно-генерированного кода. В PhpStorm 2019.1 мы добавили возможность отлаживать оригинальные нескомпилированные файлы шаблонов .twig и .blade.php. При этом в отладчике доступны все традиционные возможности: пошаговое исполнение, отслеживание значений переменных и контекста исполнения и т. д.

Поиск «мертвого» кода

Если вам приходится иметь дело с устаревшей кодовой базой и вы хотите привести ее в порядок, стоит начать с удаления «мертвого» кода. Теперь PhpStorm может на лету анализировать ваш код и подсвечивать прямо в редакторе те классы, члены классов и функции, которые, вероятно, нигде не используются. С помощью инспекции Unused declaration можно найти все неиспользуемые элементы в пакетном режиме. Чтобы получить отчет со списком всех проблем, вызовите меню Code -> Inspect Code….

Новые рефакторинги и быстрые действия

Замена конкатенации строк вызовом функции sprintf()

Манипулирование строками

В этом релизе мы добавили несколько новых преобразований для строковых выражений. Теперь можно скопировать конкатенированную строку в буфер, заменить конкатенацию строк интерполяцией или вызовом функции sprintf() и выполнить другие действия. Нажмите Alt+Enter на любом строковом выражении, чтобы увидеть доступные преобразования.

Улучшенная поддержка VCS

Удаление неиспользуемых переменных

В PhpStorm 2019.1 появилась новая инспекция, которая обнаружит и позволит удалить неиспользуемую переменную в операциях присваивания и конструкциях use в замыканиях. При этом быстрое исправление учитывает ситуации, в которых операция присваивания может иметь побочные эффекты.

Рефакторинг Move to Class

Рефакторинг Move to Class

С помощью этого рефакторинга можно безопасно перемещать функции и константы из PHP-файлов в классы. PhpStorm при этом обновит все вызовы этих функций. Если нужно переместить сразу несколько функций, выберите их в окне Structure.

Инспекция Method May Be ‘static’

Инспекция Method May Be ‘static’

Эта инспекция обнаружит методы, которые можно преобразовать в статические, то есть те, в которых не используется экземпляр класса. Для таких методов будет доступно быстрое исправление — можно нажать Alt-Enter и выбрать Make static. Все вызовы будут обновлены автоматически.

Docker

Переиспользование контейнеров

Переиспользование Docker-контейнеров

Добавлена поддержка запуска Docker-контейнеров в режимах docker-compose run и docker-compose exec. Первый режим подойдет для легковесных контейнеров, которые останавливаются сразу после запуска. Второй позволяет использовать запущенные контейнеры повторно без необходимости перезапуска.

PHP

Улучшенное автодополнение

PhpStorm теперь использует информацию из файла .phpstorm.meta.php, чтобы подсказывать, какие аргументы ожидаются в функции и какие значения она может возвращать. Такое автодополнение помогает в ситуациях, когда вместо простого типа, например integer, вы ожидаете увидеть определенный набор констант. Или когда функция ожидает в качестве аргумента какую-то константу. Более того, такое автодополнение будет работать в любом проекте или библиотеке, если вы добавите файл .phpstorm.meta.php в проект.

Оптимизации импортов

Улучшенные импорты

Мы переработали инспекции и intention-действия, связанные с импортом пространств имен. Основная идея, заключается в том, чтобы избавиться от избыточных классификаторов. Теперь PhpStorm будет при возможности предлагать заменить полное имя класса импортом или удалить его вовсе. Кроме того, при копировании кода в файл PhpStorm попросит повторно использовать существующий псевдоним.

Инструмент очистки кода Code Cleanup

В версии 2019.1 у инструмента Code Cleanup появились специальные возможности для PHP: оптимизация использований полных имен классов с помощью добавления выражения use или удаления избыточной части. Кроме того, Code Cleanup теперь умеет исправлять нарушения стиля кода, используя PHP CS Fixer и phpcbf из PHP_CodeSniffer. Инструмент можно запускать в любое время вручную или перед коммитом в меню Code -> Code Cleanup…..

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

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

Обновленная документация

Обновленная документация

Документация (F1) теперь отображает актуальные описания CSS-свойств, HTML-тегов и атрибутов с сайта MDN и информацию об их поддержке в браузерах, а также содержит ссылки на соответствующие статьи. Чтобы убедиться, что все свойства CSS, которые вы используете, поддерживаются в целевой версии браузера, включите в настройках новую инспекцию, которая проверит совместимость с браузером.

Улучшенная поддержка TypeScript в Vue-приложениях

Улучшенная поддержка TypeScript в Vue-приложениях

Улучшена поддержка TypeScript в Vue-приложениях: PhpStorm теперь использует языковую службу TypeScript. Вас ждет более точная типизация и информация о типах, вы сможете использовать быстрые исправления, предоставляемые языковой службой, и просматривать все ошибки TypeScript, обнаруженные в текущем файле, в окне инструмента TypeScript.

Новые инспекции для Angular-приложений

В PhpStorm появилось 17 новых инспекций, которые на лету обнаруживают ошибки, специфичные для Angular-приложений, и предлагают быстрые исправления. Эти инспекции работают как в TypeScript, так и в файлах шаблонов и проверяют правильность использования привязок, директив, компонентов и т. д.

Обновленная консоль отладчика

Встречайте полностью обновленную интерактивную консоль отладчика в окне инструмента Debug для JavaScript и Node.js! Консоль теперь отображает объекты в виде дерева, позволяет менять оформление сообщений с помощью CSS и группировать их, используя методы console.group() и console.groupEnd(). Кроме того, сообщения можно отфильтровать по типу.

Замена функции, возвращающей Promise, на асинхронную функцию с async/await

Вы можете автоматически заменить функцию, которая возвращает Promise с вызовами .then() и .catch(), на асинхронную функцию с async/await. Просто нажмите Alt-Enter на имени функции и выберите действие Convert to async function. Команда доступна не только для TypeScript, но и для JavaScript и Flow.

IDE

Диалог Recent Locations

Всплывающее окно Recent Locations

Новый диалог Recent Locations отображает фрагменты кода, которые вы недавно просматривали или редактировали. Элементы списка отсортированы в хронологическом порядке: те места, к которым вы обращались позднее всего, находятся в верхней части списка. Для вызова диалога Recent Locations нажмите Cmd-Shift-E / Ctrl+Shift+E. Начните вводить текст для поиска по контексту.

Улучшенная поддержка VCS

Улучшенная поддержка VCS

В диалоге коммита появилась опция Uncheck all для частичных коммитов — с ее помощью можно снять выделение со всех фрагментов кода и потом выбрать только нужные. Кроме того, в Git Log добавлены действия Fixup, Squash и Сherry-pick.

Улучшения инструментов для работы с базами данных

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

Если вам надоели стандартные темы интерфейса, попробуйте новую темную фиолетовую тему или создайте свою! Теперь можно поменять цвет любого элемента IDE: значков, переключателей, стрелок — словом, чего угодно. Настройте PhpStorm на свой вкус и сохраните изменения в виде плагина.

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

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

  • Добавлена поддержка баз данных Greenplum, Vertica и Apache Hive
  • Для CREATE и DROP автодополнение предлагает комбинированные варианты
  • Появилась поддержка атрибута DEFINER в MySQL и MariaDB
  • Добавлена поддержка Oracle-режима в MariaDB
  • Теперь можно выбрать папку проектов по умолчанию

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

  • Новые возможности настройки цветов типов параметров и членов класса на основе их видимости. Цвета можно настроить в Preferences | Editor | Color Scheme | PHP.
  • Теперь можно включать перенос строк в редакторе для определенных типов файлов. Для этого перейдите в Preferences/Settings | Editor | General и укажите типы файлов в поле Soft-wrap files.
  • Настройки PHPDoc стали более гибкими: можно сортировать выражения use, настраивать порядок элементов и отступы. Новые опции вы найдете на вкладке PHPDoc в Preferences | Editor | Code Style | PHP.