Что нового в PhpStorm 2020.1

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

Встроенная поддержка composer.json

Все действия по работе с зависимостями теперь интегрированы прямо в редактор и доступны непосредственно в файле composer.json.

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

Управление зависимостями

Мы убрали диалог управления зависимостями, потому что работать с пакетами из файла composer.json намного проще.

Чтобы добавить новый пакет, начните вводить его имя в разделе require(-dev) или нажмите Ctrl+Space и выберите нужный пакет из списка.

Будут также перечислены все доступные версии определенного пакета.

Создание файла composer.json

Создание файла composer.json

Начиная работу над новым проектом, вы можете создать файл composer.json, используя шаблон. Кликните правой кнопкой мыши в дереве проекта и выберите New -> composer.json File.

Обновление и установка пакетов

Обновление и установка пакетов

Если зависимость указана в файле composer.json, но еще не установлена, PhpStorm обнаружит ее и подсветит.

Чтобы ее установить, нажмите Alt+Enter и выберите Update package (обновить пакет) или Update all packages (обновить все пакеты).

Навигация к файлам и папкам

Навигация к файлам и папкам

Если нажать Ctrl+Click на пакете, PhpStorm подсветит папку c этим пакетом в каталоге vendor в дереве проекта. Если нажать на файле, он откроется в редакторе.

С помощью этих же сочетаний клавиш — Ctrl+Click или Ctrl+B — можно открыть в браузере любую ссылку из composer.json.

Создание и запуск скриптов

Создание и запуск скриптов

Напротив каждой записи в секции скриптов есть зеленый значок, нажав на который можно мгновенно запустить скрипт.

При добавлении новой записи автодополнение теперь поддерживает ссылки на скрипты, двоичные файлы из каталога vendor/bin и любые PHP-файлы из исходников проекта.

Анализ покрытия кода с помощью PCOV и PHPDBG

PSR-12

Для более быстрой генерации отчетов о покрытии кода в дополнение к Xdebug теперь можно использовать легковесное PHP-расширение krakjoe/pcov или встроенный отладчик PHPDBG.

Вы можете создать конфигурацию запуска для тестов. В настройках конфигурации есть раскрывающийся список, в котором можно выбрать драйвер для анализа покрытия кода: Xdebug, PCOV или PHPDBG.

Выберите, что вам больше нравится, нажмите кнопку Run with Coverage на главной панели инструментов и изучайте результаты анализа.

Инструменты для PHPUnit

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

В PhpStorm 2020.1 есть инструменты, которые помогут вам легко перейти на свежую версию PHPUnit.

Все устаревшие элементы подсвечиваются в редакторе. Наведите курсор на устаревший объект, нажмите Alt+Enter и выберите из списка предпочтительное быстрое исправление. Его также можно выбрать в нижней части окна с описанием ошибки.

Чтобы быстро создать новый тестовый класс PHPUnit, используйте действие Create new PHP Test, нажав Alt+Enter на имени класса.

Улучшенный вывод типов PHP

Мы добавили несколько улучшений в ядро PhpStorm — механизм вывода типов.

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

Обнаружение лишнего тега @var

Если PhpStorm уже знает правильный тип переменной, избыточный тег @var с информацией о типе будет подсвечен. Его можно удалить с помощью быстрого исправления Remove @var, нажав Alt+Enter.

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

Отслеживание значения null

Отслеживать допустимость значения null непросто, и в некоторых местах PhpStorm это не удавалось. Но к версии 2020.1 это не относится. PhpStorm знает, когда переменная имеет значение null, а когда — нет, и помогает избежать проблем, связанных с допустимостью этого значения.

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

Автодополнение функций array_map/filter

В теле замыкания, которое передано в функции array_map() и array_filter(), теперь работает автодополнение для аргументов.

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

Вывод типа массива из его инициализатора

Если вы перебираете массив с известным набором элементов, вам больше не нужно дополнительно указывать тип через тег @var: PhpStorm выведет тип автоматически.

И еще

Автодополнение на основе машинного обучения

Автодополнение на основе машинного обучения

Мы внедрили сортировку вариантов автодополнения на основе машинного обучения еще в версии 2019.3. IDE упорядочивает варианты автодополнения во всплывающем окне по степени их актуальности: самые подходящие располагаются наверху.

По умолчанию эта функциональность отключена. Чтобы включить ее, установите флажки Rank completion suggestions based on Machine Learning и PHP в разделе Preferences/Settings | Editor | General | Code Completion.

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

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

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

Поместите курсор на метод, нажмите F6 (или Ctrl+T, 3), а затем выберите целевой класс. Только и всего.

Удаление PHPDoc, содержащего только аннотации типов

Удаление PHPDoc, содержащего только аннотации типов

Если блок PHPDoc содержит только теги @param с аннотациями типов, его можно удалить и использовать встроенные средства объявления типов параметров.

Нажмите Alt+Enter и выберите быстрое исправление Remove redundant PHPDoc comment.

Обнаружение избыточных тернарных выражений

Обнаружение избыточных тернарных выражений

PhpStorm подсвечивает тернарные выражения, которые можно сократить и упростить. С помощью быстрого исправления (Alt+Enter) их можно заменить эквивалентным простым выражением.

Удаление неэффективных случаев передачи параметров по ссылке

Удаление неэффективных случаев передачи параметров по ссылке

Передача параметров по ссылке может привести к неожиданным последствиям. PhpStorm 2020.1 находит и подсвечивает параметры, которые без надобности помечены как переданные по ссылке.

То же самое касается передачи по ссылке в циклах foreach.

Метаданные

Чтобы помочь PhpStorm правильнее анализировать ваш код, вы можете заносить дополнительную информацию в специальный файл .phpstorm.meta.php. И здесь есть несколько улучшений.

Номер параметра в директивах override, map и type

Номер параметра в директивах override, map и type

Раньше с помощью директив override(), map() и type() можно было изменить поведение только первого параметра функций. В PhpStorm 2020.1 мы это исправили: теперь можно явно указать номер параметра.

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

Доступ к свойствам через метод __get

Если бы вам пришлось получать некоторые объекты с помощью метода __get(), вы, скорее всего, потеряли бы информацию о типе. Вместо использования тегов @var и @property теперь можно указать эту информацию в файле .phpstorm.meta.php. Это работает, даже если тип заранее не известен.

Точки выхода, заданные пользователем

Точки выхода, заданные пользователем

PhpStorm считает, что функции die () и exit (), как и другие любые функции, вызывающие исключение, завершают выполнение скрипта. Но в приложениях могут встречаться и другие функции, которые следует рассматривать как «точки выхода», например, функция отладки dd (). Теперь можно пометить любую функцию как точку выхода.

Автодополнение ключей в объектах ArrayAccess

Автодополнение ключей в объектах ArrayAccess

Благодаря поддержке метаданных уже было можно использовать автодополнение, даже если объект использовался в качестве контейнера массива для других объектов. Однако такое автодополнение не работало для ключей. Теперь работает.

Значки для функций, переопределенных в метафайле

Значки для функций, переопределенных в метафайле

Специальные значки на поле редактора теперь указывают на то, что поведение было изменено с помощью директив override (), exitPoint () или expectArguments() в файле .phpstorm.meta.php. А поскольку в проекте может быть любое количество таких метафайлов, нажав на значок, вы откроете тот, который используется именно в этом месте.

HTTP-клиент

PHP Debug в HTTP-клиенте

PHP Debug в HTTP-клиенте

При разработке веб-приложений или ресурсов API теперь легко начать отладку прямо из PhpStorm.

Для этого создайте или откройте http-файл, добавьте запрос, а затем используйте Alt+Enter для запуска PHP Debug. К запросу добавится файл cookie XDEBUG_SESSION, и отладка будет производиться аналогично расширению браузера Xdebug.

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

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

Новые действия и инспекции для JavaScript и TypeScript

Новые действия и инспекции для JavaScript и TypeScript

Новые действия и инспекции (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать код в optional chaining и/или nullish coalescing — синтаксис, появившийся в последних версиях JavaScript и TypeScript.

Поддержка Vuex и Composition API

Поддержка Vuex и Composition API

Благодаря встроенной поддержке библиотеки Vuex и Composition API из Vue 3 создавать приложения Vue.js стало еще проще.

Запуск Prettier при сохранении файлов

Запуск Prettier при сохранении файлов

Новая опция Run on save for files позволяет применять форматирование Prettier ко всем файлам, указанным в настройках IDE и отредактированным в проекте, как только вы их сохраните. Для этого больше не нужны плагины или file watchers.

IDE

Умная проверка правописания

Умная проверка правописания

Плагин Grazie теперь встроен в PhpStorm. Он мгновенно находит опечатки, орфографические и грамматические ошибки, которые сразу предлагает исправить.

Проверка орфографии по умолчанию включена в файлах Markdown. Для комментариев PHPDoc, строк HEREDOC/NOWDOC и строковых литералов в PHP-файлах проверку можно включить в разделе Preferences/Settings | Editor | Proofreading | Grammar.

Для более тщательной проверки правописания включите инспекцию Grammar в разделе Preferences/Settings | Editor | Inspections -> Proofreading.

Быстрое редактирование файлов

Быстрое редактирование файлов

В новом режиме LightEdit можно использовать PhpStorm как простой текстовый редактор и быстро вносить изменения в файлы, не открывая IDE полностью.

Чтобы попробовать этот режим, откройте файл из командной строки (как это сделать, читайте в документации) или из файлового менеджера операционной системы. Если IDE не запущена, файл откроется в режиме LightEdit.

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

Параллельное отображение сеансов терминала

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

Параллельные сеансы открываются и закрываются через контекстное меню.

Общая конфигурация SSH

Общая конфигурация SSH

Все SSH-соединения теперь собраны в одном месте — в разделе Preferences/Settings | Tools | SSH Configurations.

Вы можете создать соединение один раз и использовать его в разных местах в IDE, например в конфигурации развертывания, для удаленного интерпретатора PHP или в качестве SSH-терминала.

Обновления интерфейса

Обновленная светлая тема

Обновленная светлая тема

Светлая тема теперь выглядит одинаково во всех операционных системах и называется IntelliJ Light. Если вы хотите переключиться на старую тему, перейдите в меню Preferences/Settings | Appearance & Behavior | Appearance | Theme.

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

Новый шрифт по умолчанию

JetBrains Mono — это бесплатный моноширинный шрифт с открытым исходным кодом, разработанный специально для разработчиков. Мы сделали этот шрифт, чтобы вам было проще читать код. Теперь он установлен по умолчанию в PhpStorm.

Режим полного погружения

Режим полного погружения

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

Попробуйте новый режим: View | Appearance | Enter Zen Mode.

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

Обновленный диалог перебазирования

Обновленный диалог перебазирования

Мы переделали диалог Interactively Rebase from Here, чтобы вы могли контролировать весь процесс перебазирования. Вот что теперь в нем можно сделать:

  • Выбрать действие, которое вы хотите выполнить для каждого коммита в ветке.
  • Посмотреть на диаграмме, какие действия уже были выполнены.
  • Посмотреть сведения о коммите.
  • Сравнить измененные файлы и отменить изменения, если необходимо.
Отправка изменений из любой ветки

Новый способ сделать коммит

Чтобы упростить процесс выполнения коммитов, мы добавили новое окно Commit для обработки любых задач, связанных с коммитами. У новых пользователей это окно включено по умолчанию.

Остальные могут попробовать новый способ, выбрав опцию Use non-modal commit interface в меню Preferences/Settings | Version Control | Commit.

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

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

Экспорт в Excel

Экспорт в Excel

Наконец можно экспортировать результат запроса в таблицу Excel.

Результаты в редакторе

Результаты в редакторе

Теперь результаты запросов к базе данных можно просматривать в редакторе. Чтобы попробовать эту функцию, отметьте галочкой опцию Show output results in the editor в меню Preferences/Settings | Database | General.

Конфигурации запуска

Конфигурации запуска

Пользователям PhpStorm хорошо знакомо понятие конфигурации запуска. Теперь, помимо PHP-скриптов, тестов и HTTP-запросов, можно запускать и запросы к базе данных.

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

  • Все члены и объекты, помеченные как @deprecated, отображаются в окне структуры перечеркнутыми.
  • Добавлено новое действие для быстрого перехода к закрывающей или открывающей фигурной скобке.
  • Синтаксис лексера для Twig можно кастомизировать.
  • Путь к конфигурационным файлам изменился (подробнее).
  • Конфигурации запуска можно хранить вне папки .idea и предоставить общий доступ к ним через управление версиями. Откройте диалог Run/Debug Configurations и выберите Store as project file.