Что нового в PhpStorm 2019.2

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

Типизированные свойства 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

Раньше для запуска 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

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

Новые intention-действия для JavaScript и TypeScript

Новые intention-действия для JavaScript и TypeScript

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

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

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

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

Теперь, когда вы переименовываете идентификатор в файле 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 других объектов.