+38/050/370-3627
+38/067/502-3306
+38/044/257-2444
Новости

PhpStorm 2019.3 - мажорный релиз кросс-платформенной интегрированной среды разработки для PHP

PhpStorm 2019.3 - мажорный релиз кросс-платформенной интегрированной среды разработки для PHP

JetBrains представила третий мажорный релиз PhpStorm в этом году!

Скачать новую версию можно на сайте JetBrains или с помощью Toolbox App. Как всегда, доступна 30-дневная пробная версия. Полную же версию могут использовать обладатели действующей подписки на PhpStorm или All Products pack, а также бесплатно — студенты и разработчики проектов с открытым исходным кодом.

Производительность и качество

В каждом релизе JetBrains уделяет немало внимания улучшению производительности. Но в этот раз JetBrains пошли еще дальше и устроили целый трехмесячный марафон по качеству, во время которого вся команда платформы IntelliJ была сосредоточена на шлифовке IDE с разных сторон. И вот чего удалось достичь:

  • IDE запускается быстрее
  • UI стал отзывчивее
  • Снизилось потребление памяти

JetBrains не планирует останавливаться на достигнутом и продолжит работу над уменьшением времени запуска и другими оптимизациями в следующих релизах.

PHP 7.4

PHP 7.4 уже вышел! И в нем очень много крутых фич. JetBrains начали выкатывать поддержку PHP 7.4 в предыдущем релизе, а в PhpStorm 2019.3 полностью поддерживаются все новые возможности языка.

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

Это, пожалуй, самая ожидаемая фича PHP 7.4, и PhpStorm поддерживает ее начиная с версии 2019.2. 
Конечно же, подсвечиваются все неправильные использования и несоответствия типов

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

В любом случае, нажмите Alt+Enter на свойстве, у которого нет типа, и в выпавшем списке выберите Add declared type for the field.

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

Если у вас есть анонимные функции с однострочным телом, то в PHP 7.4 вы можете использовать для них синтаксис коротких лямбд: fn(parameter_list) => expr

При этом нет необходимости добавлять секцию use, потому что поддерживается автоматический биндинг по значению переменных из внешнего скоупа

Нажмите Alt+Enter на анонимной функции и выберите пункт Convert closure to arrow function, чтобы сконвертировать функцию автоматически

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

В PHP 7.4 можно вставлять символ подчеркивания в любом месте числа, чтобы визуально его отформатировать и улучшить читаемость кода.
Нажмите Alt+Enter на любом числе и примените Add number separators. Это автоматически добавит символ ‘_‘ после каждого третьего знака в десятичных числах, или после каждого четвертого знака в шестнадцатеричных, двоичных и восьмеричных.

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

Почти во всех языках программирования тернарный оператор считается справа налево. В PHP все было наоборот, что весьма неинтуитивно и могло приводить к ошибкам. В PHP 7.4 левая ассоциативность тернарного оператора больше не поддерживается. Это значит, что либо вы не используете вложенные тернарные выражения вообще, либо используете, но явно указываете порядок выполнения с помощью скобок.
PhpStorm 2019.3 подсветит устаревшее выражение, а вы можете уточнить, что имелось в виду, с помощью быстрого исправления

Новый механизм сериализации

Проблемы интерфейса Serializable в PHP исправить не представлялось возможным, поэтому было решено добавить два новых магических метода __serialize() и __unserialize(). PhpStorm поможет найти их использования в коде

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

PHP 7.4 исправляет множество несоответствий, в частности, теперь позволяет «сужать» тип возвращаемого значения в наследниках и «расширять» тип параметров.

Устаревшие возможности

В PHP не только добавляют новые возможности, но и удаляют старые, делая язык более чистым и удобным для работы. И в PHP 7.4 есть целый ряд “депрекаций”.
PhpStorm 2019.3 подсвечивает те куски кода, которые требуют вашего внимания. Где возможно, предоставляется quick-fix (Alt+Enter) для исправления устаревшего выражения

PSR-12

Новый стандарт PSR-12 пришел на смену старому доброму PSR-2 и расширяет его правилами для новых фич языка, а также исправляет неточности. Спасибо PHP-FIG за отличный апдейт! Если вы использовали PSR-2, то посмотрите, что изменилось в PSR-12.

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

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

WSL

PhpStorm теперь поддерживает разработку в окружении WSL (Windows Subsystem for Linux), то есть когда вы запускаете IDE на Windows 10, целевая система разработки WSL/Linux. Вы можете указать удаленный PHP-интерпретатор из WSL и использовать его для запуска скриптов, тестов, команд Composer и отладки.
Чтобы начать, установите и настройте WSL по инструкции, а затем установите PHP, если он не идет в поставке в выбранном дистрибутиве Linux.
После этого можно добавить CLI интерпретатор через File | Settings | Languages & Frameworks | PHP

Добавленный интерпретатор можно использовать для запуска тестов, Composer, или любой другой run-конфигурации.

Другие улучшения для PHP

Подсветка PHP в Markdown и строках
Иногда может потребоваться использовать PHP в строковом литерале. Надеюсь, все-таки не в eval(), но вы понимаете, о чем речь. Или, может быть, вы хотели бы видеть подсветку PHP во фрагментах кода в markdown-файлах.
Всё это доступно в PhpStorm 2019.3 благодаря специальному диалекту PHP, который называется InjectablePHP. Этот диалект работает так же? как и обычный PHP, но при этом не требует открывающихся тегов.
Он будет автоматически внедрен в markdown, если вы используете маркер php

Возможность выбрать интерпретатор PHP для тестовых run-конфигураций
Раньше требовалось создать отдельную run-конфигурацию для удаленных интерпретаторов. В PhpStorm 2019.3 мы добавили возможность указать интерпретатор для любых PHP run-конфигураций. Так что можно легко использовать для этого Docker, Vagrant, тот же WSL или любой другой вариант

Улучшения PHPDoc
Традиционно PhpStorm предоставлял переходы по FQN и ссылкам в PHPDoc, но сам блок при этом отображался одним цветом как обычный комментарий.
В PhpStorm 2019.3 докблоки получили подсветку для типов, переменных, параметров, методов и свойств. Если в блоке встречается HTML, то его теги тоже подсвечиваются

HTTP-клиент

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

В редакторе http- и rest-файлов появилась панель инструментов с быстрыми действиями

Run All Requests in File

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

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

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

Version Control

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

В новом диалоге можно тут же залогиниться в GitHub, или, если вы уже залогинены, посмотреть список доступных репозиториев.

Push любой ветки

Теперь можно запушить любую ветку, не переключаясь на нее. В попапе VCS | Branches выберите ветку и используйте Push

IDE

Улучшения в управлении плагинами

Для PhpStorm есть много крутых плагинов, но раньше управлять ими было не всегда удобно, потому что каждый раз после установки/удаления требовался перезапуск IDE. В PhpStorm 2019.3 на уровне инфраструктуры мы реализовали поддержку динамической установки плагинов. Это значит, что теперь есть возможность устанавливать и удалять плагины без перезапуска. Пока что это доступно только для тем и плагинов с картами горячих клавиш, но в следующих релизах мы планируем распространить это на большинство плагинов.

Контрастные полосы прокрутки

Полосы прокрутки теперь можно сделать более различимыми с помощью опции “Use contrast scrollbars” в Preferences | Appearance & Behavior | Appearance.

Гладкая прокрутка

Если включена опция Smooth scrolling в Preferences | Appearance & Behavior | Appearance, то прокрутка мышью или тачпадом во всем интерфейсе будет гладкой, а не построчной.

Поиск в выделенном тексте

Выделите кусок кода в редакторе и вызовите Find нажатием Cmd/Ctrl+F и поиск будет осуществляться только по выделенному тексту. Если нажать Cmd/Ctrl+Fещё раз, то поиск переключится на весь файл

Поддержка MongoDB

Наконец-то настал этот день, когда мы начали работу над поддержкой MongoDB.
Что, собственно, работает в этой версии:

Просмотр коллекций
Можно видеть коллекции и поля в окне баз данных. Мы получаем первые 10 документов из каждой коллекции, чтоб вытащить информацию о полях (настраивается)

Консоль запросов
Пока в консоли нет дополнения кода, но запускать запросы и просматривать результаты уже можно. Поставьте курсор на запросе и нажмите Cmd/Ctrl+Enter или на иконку Play в тулбаре.
Дополнение для запросов ожидается в следующих версиях.

PhpStorm включает в себя все возможности DataGrip из коробки, так что в инструментах БД еще очень много других нововведений. Скоро будет обзор релиза DataGrip 2019.3 от наших коллег.
Также, как всегда, PhpStorm включает в себя все обновления из WebStorm.
А полный список изменений можно найти в очень больших release notes

Другие новости