Выпущен PhpStorm 2016.2

Всем привет!

Буквально вчера вышла новая версия PhpStorm, вторая в этом году. Я надеюсь, что ни наша IDE, ни компания JetBrains в отдельном представлении на Хабре не нуждаются, поэтому сразу перейду к основным изменениям. Кстати, чтобы не терять времени даром, можете поставить пробную 30-дневную версию на загрузку и читать дальше. Поехали!

image

Улучшенная поддержка языка PHP


PhpStorm научился еще лучше выводить типы (type inference) массивов и итераторов. Тип переменных теперь уточняется из кода, например, при использовании оператора instanceof. Также улучшения коснулись .phpstorm.meta.php.

image

Добавлена инспекция для строгой проверки типов PHP 7. При наличие в коде директивы declare (strict_types=1); PhpStorm будет предупреждать о соответствующих ошибках TypeError. Более подробно о ней вы можете прочитать в нашем блоге на английском языке.

image

Улучшения коснулись и парсинга. В частности, появилась поддержка универсального синтаксиса работы с переменными. Нововведением является поддержка PHP 7.1, выход которого ожидается в конце этого года.

image

Генерация аксессоров теперь поддерживает типы аргументов и возвращаемый тип. Уровень языка в проекте должен быть PHP 7 или выше.

image

Удобство редактирования


Значения констант показываются в списке автодоплнения рядом с их именами. Статические методы фильтруются при первом вызове автодополнения в динамическом контексте, но нажатие Ctrl + Space возвращает все как было (привет, PHPUnit).

91dfa44812234d93aca0929976d1586e.png

Добавлен динамический шаблон для автодополнения параметров функций, методов и конструкторов. Он может быть вызван как с помощью ключевого слова params из списка автодоплнения, так и автоматически при вставке функции (необходимо включить отдельно в настройках: Settings → Editor → General → Smart Keys → Enable smart function parameters completion).

image

IDE теперь поддерживает умное автодополнение кода на основе типов (Smart Type Code Completion). Нажатие Ctrl + Shift + Space оставит в списке автодополнения только элементы, тип которых соответствует контексту. Тип контекста также учитывается при сортировке списка.

image

Унифицирована генерация и валидация PHPDoc тега @throws. Соответствующие настройки теперь живут по новому адресу Settings → Editor → Code Style → PHP → PHPDoc и позволяют выбирать глубину анализа дерева вызовов. Чуть более подробно здесь (на англ.).

image

Анализ качества кода


Импорты не только классов, но и функций, констант и пространств имен теперь могут быть отмечены как неиспользуемые. Они будут удалены при форматировании кода, если включена опция Optimize imports.

image

В дополнение к строгой проверке типов, PhpStorm обзавелся инспекцией для проверки типа возвращаемого значения функции. Она запускается при любом установленном уровне языка и учитывает не только сигнатуру функции, но и PHPDoc тег @return.

image

Еще одна новая инспекция рапортует о случаях, когда статический метод вызывается с помощью »». Она выключена по умолчанию, потому что PHPUnit (см. выше). Включить ее можно здесь: Settings → Editor → Inspections → Static method called as dynamic.

image

Фреймворки и инструменты


PhpStorm 2016.2 позволяет сохранить произвольный проект как шаблон (Tools → Save Project as Template…), чтобы впоследствии использовать его при создании нового проекта (File → New Project…).

image

IDE теперь поставляется вместе с новым плагином, который добавляет поддержку Joomla! . А именно: стиль кода, JHtml::_($argument), JText::_($argument), префикс БД и прочее.

image

Для того чтобы улучшить производительность интерпретатора, PhpStorm позволяет включать Xdebug только по требованию, пост в поддержку (на англ.).

image

Современные веб-технологии


Как обычно, PhpStorm 2016.2 влючает в себя все улучшения WebStorm 2016.2 сразу или при помощи плагинов. Например, TypeScript 2.0.

image

Добавлена поддержка Angular CLI и фрагментов кода (code snippets, они же live templates) для Angular 2.

image

Изображения, JavaScript-файлы и CSS-файлы теперь можно перетащить мышкой в открытый HTML-файл, и соответствующий тег будет вставлен автоматически.

image

Новые возможности и усовершенствования IntelliJ Platform


Работа с патчами, улучшенная вкладка Log для Git и Mercurial и другие изменения, связанные с системами контроля версий, уже описывались на Хабре и доступны в новейшей версии IDE.

image

UI претерпел ряд эволюционных изменений. Например, мы объединили вкладку Watches с вкладкой Variables в отладчике; уведомления переехали в правый нижний угол и группируются по типам;, а также теперь можно установить произвольную картинку фона редактора.

image

IDE теперь «умеет» лигатуры. Просто скачайте и установите соответствующий шрифт (например, FiraCode), после чего включите соответствующую опцию в Settings → Editor → Colors & Fonts → Font (флажок Enable font ligatures).

image

Благодаря нашим коллегам из команды DataGrip, поддержка баз данных в PhpStorm также была улучшена. Встречайте автодополнение имен баз данных в диалоге настроек Data Source and Drivers, контекстно-зависимое автодополнение SQL и многое другое.

image

В заключение


Мы подготовили видео (на англ.), демонстрирующее все изменения и улучшения:

Бесплатное обновление до версии 2016.2 доступно всем, у кого есть активная подписка на PhpStorm или All Products.

Посетите страницу What«s New, скачайте новую версию, оставляйте свои комментарии здесь или в блоге PhpStorm, а также подписывайтесь на наш твиттер-аккаунт.

Программируйте с удовольствием!
 — Команда JetBrains PhpStorm

Комментарии (4)

  • 14 июля 2016 в 19:09

    +1

    Что-то странное с автокомплитом случилось, пишешь, например: \Invali и он отображает все возможные InvalidArgumentException в автокомплите из проекта, кроме SPL, который нужен (рутовый неймспейс как бы намекает). Что самое удивительное, если тыкнуть на Enter, выделив, например симфонийский какой-нибудь — он его не добавляет, а просто автокомплитит рутовым SPL.


    Так и задумано?

    • 14 июля 2016 в 20:27 (комментарий был изменён)

      0

      JetBrains каждый релиз меняют алгоритмы автокомплита. Кажется что уже привык после последнего апдейта, а потом выходит новая версия. Поэтому пока что не сильно спешу обновляться с 9ой версии.
  • 14 июля 2016 в 20:27

    0

    Делал две попытки с перерывом в два года перейти на PhpStorm, так и не смог. Все круто, все развесисто и даже не особо тормозит, но мало проектов, когда в неизменном окружении год что-то одно пилишь. Гораздо чаще надо что-то по быстрому поправить за пару часов прям на серве, с доступом по ssh или фтп, а в таких условиях сколько не пытался себя уговорить PhpStorm запускать — не смог. Слишком уж много времени тратиться на борьбу с фичами, которые все равно в этих условиях не заработают. Ну и мелочи типа отсутствия встроенного хелпа с пхп функциями, откуда что-то по быстрому скопипастить можно тоже чутка напрягает.
  • 14 июля 2016 в 20:29

    0

    Одно из худших (с т.з. стабильности) обновлений.
    Все 2016.1+ при непонятных условиях (нет background tasks и чего-то подобного, отключены все плагины, IDE просто открыта) начинают просто съедать процессор. Помучился помучился и откатился на 9–10 версии.
    Честно говоря, со стабильностью уже примерно год от версии к версии то появляются то исчезают подобные чудеса. Хочется уже найти стабильную fallback версию и остаться на ней и параллельно смотреть альтернативы…

© Habrahabr.ru