+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новости

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

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

JetBrains представил PhpStorm 2020.2 - второй мажорный релиз PhpStorm в этом году. Что нового в PhpStorm 2020.2:

Union types в PHP 8

Объединенные типы T1|T2|... можно использовать везде, где типы можно указывать сейчас: в аргументах, свойствах и возвращаемых значениях. В этом случае переменная может принимать один из перечисленных типов.

Фактически объединенные типы давно используются в PHPDoc, но теперь интерпретатор действительно будет проверять их в рантайме.

Переключение версии языка

Чтобы увидеть все возможности, можно вручную переключить версию языка на PHP 8 в настройках Languages & Frameworks | PHP | PHP language level.

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

А если версия PHP указана в composer.json, то PhpStorm подтянет ее автоматически.

Валидация типов

PhpStorm и раньше умел анализировать типы и находить нарушения по информации из тегов PHPDoc. С нативными декларациями эти возможности расширились.

Проверки делаются для всего: свойств, аргументов, возвращаемых значений.

Псевдотип false

Некоторые функции могут возвращать false в случае ошибки. Например, так ведут себя strpos()array_search() и еще 310 других стандартных функций.

В этом случае можно было бы указать возвращаемый тип как объединенный, например int|bool, но по факту true там никогда не будет.

Для таких случаев и введен псевдотип false. Его можно использовать только в объединениях. Иначе PhpStorm подсветит невалидный код.

Дублирующиеся и избыточные типы

Многие комбинации в объединениях типов запрещены или просто лишние. Например:

  • bool|false — потому что false входит в bool;
  • Foo|Foo или int|string|INT— повторения;
  • object|User — object заведомо содержит все остальное;
  • iterable|array или iterable|Traversable — iterable включает array и Traversable;
  • void — может использоваться только в возвращаемом значении и только сам по себе;
  • false или null — только как часть объединения.

PhpStorm подсветит все такие нарушения.

Nullable типы

Прежний синтаксис ?Type теперь рассматривается как сокращение для Type|null.

Но сокращенный вариант с ? нельзя использовать в объединениях, потому что возникает неразрешимая двусмысленность.

Для таких случаев в PhpStorm есть квик-фикс (Alt+Enter).

Изменение типов при наследовании

Для методов действуют два правила:

Тип параметра контравариантен,то есть его можно расширять.

Инструменты БД

PhpStorm «из коробки» включает в себя почти все возможности DataGrip, которые охвачены в обзоре релиза DataGrip 2020.2 от наших коллег.

Веб

И, как всегда, все обновления из WebStorm 2020.2 тоже входят в PhpStorm. Например, с помощью плагина, Prettier можно использовать в качестве дефолтного форматтера в том числе и для PHP-файлов.

A full list of all the changes in this release is available in the really long PhpStorm 2020.2 release notes.

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

Лучшая цена