PhpStorm 2020.3 - JetBrains представил финальный мажорный релиз PhpStorm
PhpStorm 2020.3 - JetBrains представил финальный мажорный релиз PhpStorm
Основные изменения и новые возможности PhpStorm 2020.3:
- PHP 8: поддержка всех языковых функций, и штормовские атрибуты.
- PHPStan и Psalm можно использовать для подсветки ошибок в редакторе.
- Xdebug 3 с упрощённой конфигурацией, и новые фишки для отладки в IDE.
- HTTP-клиент теперь может запускать запросы Guzzle и экспортировать в cURL.
- Совместная разработка для работы над проектом с коллегами в реальном времени.
- Редактор научился рендерить диаграммы Mermaid.js, разделять экран перетаскиванием, и позволяет просматривать файлы не открывая их.
- Git stage поддерживается как альтернатива для changelists.
- В инструментах БД добавлен SQL для MongoDB.
- Tailwind CSS теперь тоже поддерживается.
PHP 8
PHP 8.0 выпущен. Большое спасибо всем контрибьюторам и менеджерам релиза!
PhpStorm 2020.3 поддерживает все последние изменения языка. Давайте рассмотрим, что доступно и как это использовать в IDE.
Версия языка в статусбаре
Теперь в статусной строке всегда отображается текущая версия PHP проекта. Оттуда же можно переключить версию.
Именованные аргументы
В PHP 8 аргументы функций и методов могут передаваться путем указания имени параметра. Вызовы теперь автоматически задокументированы, а необязательные параметры стали необязательными в полном смысле слова.
С помощью квик-фикса Add name identifiers можно добавить имена к аргументам
Атрибуты
Атрибуты — это новый, структурированный способ указания метаданных в PHP вместо комментариев PHPDoc.
Чтобы создать атрибут, надо объявить класс и добавить маркер #[Attribute]
. Здесь PhpStorm поможет с подсветкой, автодополнением кода, поиском использований, рефакторингами и прочим
Штормовские атрибуты PHP 8
Несколько атрибутов доступны в PhpStorm 2020.3 «из коробки» в неймспейсе \JetBrains\PhpStorm\
.
Их сразу же можно использовать в своей кодовой базе, ничего не подключая.
А вот если вы дополнительно используете другие инструменты статического анализа и не хотите получать ошибок типа Class not found, то тогда, возможно, стоит добавить пакет атрибутов JetBrains/phpstorm-attributes как зависимость в composer.json
.
#[Deprecated]
Используйте этот атрибут как PHPDoc-тег @deprecated, чтобы пометить методы, классы или константы классов, которые будут удалены в будущем.
Преимущество тут в том, что можно указать замену для устаревшего кода и пользователю будет проще обновиться.
#[ArrayShape]
Этот атрибут полезен для работы с простыми структурами данных или объектоподобными массивами, когда по какой-то причине нельзя объявить класс.
#[Immutable]
Неизменяемые объекты не могут быть изменены после инициализации или создания. Их использование делает состояние программы более предсказуемым и облегчает отладку.
Атрибутом #[Immutable]
можно пометить весь класс или конкретные свойства, чтобы показать, что они не могут быть изменены.
#[Pure]
Этим атрибутом помечаются чистые функции, то есть те, которые не производят никаких побочных эффектов. Такие функции можно безопасно удалить, если результат их выполнения впоследствии не используется.
#[ExpectedValues]
С помощью этого атрибута можно указать, какие значения функция принимает в качестве параметров, а какие может возвращать.
#[NoReturn]
Некоторые функции могут приводить к остановке выполнения скрипта. Если отметить такие функции как точки выхода атрибутом #[NoReturn]
, то улучшится анализ потока управления.
#[Language]
Этот атрибут можно добавить к строковым параметрам, в которых ожидается текст на каком-либо языке, например RegExp, SQL, DQL и так далее.
Поддержка Psalm и PHPStan
Оба статических анализатора можно использовать в PhpStorm 2020.3 для подсветки проблем непосредственно в редакторе.
Xdebug 3
Обновился популярный отладчик для PHP, теперь он значительно быстрее в работе и проще в настройке.
Улучшения отладчика
Возможности по отладке в PhpStorm расширились двумя новыми фишками.
Интерактивные хинты
Теперь в отладочном режиме вывод переменных можно развернуть, чтобы увидеть все поля. Тут же можно и изменить значения.
Inline Watches
В предыдущих версиях можно было добавить переменную или выражение в список watch и наблюдать, как меняется значение по шагам.
В PhpStorm 2020.3 можно добавлять вотчи непосредственно в контексте, и они будут отображаться рядом с кодом.
Подсветка и переименование переменных в Twig
Выберите переменную или поместите на нее курсор, и все ее использования в шаблоне будут подсвечены. А чтобы переименовать все вхождения, нажмите Shift + F6.
Совместная разработка – Code With Me
В PhpStorm 2020.3 встроен плагин Code With Me — новый инструмент JetBrains для совместной разработки и парного программирования. С помощью него можно расшарить открытый проект с другими пользователями и работать над ним вместе в режиме реального времени.
HTTP-клиент
Интеграция Guzzle с HTTP-клиентом в PhpStorm
Guzzle — один самых популярных HTTP клиентов для PHP. Представьте, что где-то в коде есть HTTP-запрос и хочется его потестировать, не запуская сам код. Раньше пришлось бы копировать все параметры вручную.
PhpStorm 2020.3 позволяет конвертировать простые запросы Guzzle в файлы .http. Если запрос поддерживается, то рядом с ним появится иконка. Нажав на нее, вы откроете новый scratch-файл с правильным URL, параметрами запроса, методами, заголовками, телом.
Копировать HTTP-запрос в cURL
Чтобы экспортировать HTTP-запрос в cURL-строку, нажмите Alt+Enter на запросе в редакторе и выберите Convert to cURL and copy to clipboard. Теперь его можно вставить в терминал, документацию или любой инструмент тестирования API.
Редактор
Улучшения для Markdown
Для описания диаграмм и графиков можно использовать синтаксис Mermaid.js в markdown-файлах. PhpStorm теперь умеет рендерить превью для них прямо в редакторе. Включается в Preferences/Settings | Languages & Frameworks | Markdown.
Установить PhpStorm как приложение по умолчанию для разных файлов
В Preferences | Settings / Editor / File Types нажать Associate file types with PhpStorm…. В диалоговом окне выберите расширения для файлов, и они будут открываться в PhpStorm.
Поддержка Git stage
Включить можно чекбоксом Enable staging area в Preferences/Settings | Version Control | Git.
В окне инструментов Commit (Cmd+0 / Alt+0) появятся две группы файлов: staged и unstaged.
Инструменты БД
PhpStorm «из коробки» включает в себя возможности DataGrip.
SQL для MongoDB
Теперь можно использовать SQL-запросы к MongoDB. PhpStorm 2020.3 поддерживает SELECT-
запросы с JOIN
, WHERE
, GROUP BY
, HAVING
, ORDER BY
, LIMIT
, OFFSET
и всеми функциями MongoDB кроме map, reduce, filter и let.
Полный список "Что нового в PhpStorm 2020.3"
https://www.jetbrains.com/phpstorm/whatsnew/