Выпущен PhpStorm 2016.2
Буквально вчера вышла новая версия PhpStorm, вторая в этом году. Я надеюсь, что ни наша IDE, ни компания JetBrains в отдельном представлении на Хабре не нуждаются, поэтому сразу перейду к основным изменениям. Кстати, чтобы не терять времени даром, можете поставить пробную 30-дневную версию на загрузку и читать дальше. Поехали!
Улучшенная поддержка языка PHP
PhpStorm научился еще лучше выводить типы (type inference) массивов и итераторов. Тип переменных теперь уточняется из кода, например, при использовании оператора instanceof. Также улучшения коснулись .phpstorm.meta.php.
Добавлена инспекция для строгой проверки типов PHP 7. При наличие в коде директивы declare (strict_types=1); PhpStorm будет предупреждать о соответствующих ошибках TypeError. Более подробно о ней вы можете прочитать в нашем блоге на английском языке.
Улучшения коснулись и парсинга. В частности, появилась поддержка универсального синтаксиса работы с переменными. Нововведением является поддержка PHP 7.1, выход которого ожидается в конце этого года.
Генерация аксессоров теперь поддерживает типы аргументов и возвращаемый тип. Уровень языка в проекте должен быть PHP 7 или выше.
Удобство редактирования
Значения констант показываются в списке автодоплнения рядом с их именами. Статические методы фильтруются при первом вызове автодополнения в динамическом контексте, но нажатие Ctrl + Space возвращает все как было (привет, PHPUnit).
Добавлен динамический шаблон для автодополнения параметров функций, методов и конструкторов. Он может быть вызван как с помощью ключевого слова params из списка автодоплнения, так и автоматически при вставке функции (необходимо включить отдельно в настройках: Settings → Editor → General → Smart Keys → Enable smart function parameters completion).
IDE теперь поддерживает умное автодополнение кода на основе типов (Smart Type Code Completion). Нажатие Ctrl + Shift + Space оставит в списке автодополнения только элементы, тип которых соответствует контексту. Тип контекста также учитывается при сортировке списка.
Унифицирована генерация и валидация PHPDoc тега @throws. Соответствующие настройки теперь живут по новому адресу Settings → Editor → Code Style → PHP → PHPDoc и позволяют выбирать глубину анализа дерева вызовов. Чуть более подробно здесь (на англ.).
Анализ качества кода
Импорты не только классов, но и функций, констант и пространств имен теперь могут быть отмечены как неиспользуемые. Они будут удалены при форматировании кода, если включена опция Optimize imports.
В дополнение к строгой проверке типов, PhpStorm обзавелся инспекцией для проверки типа возвращаемого значения функции. Она запускается при любом установленном уровне языка и учитывает не только сигнатуру функции, но и PHPDoc тег @return.
Еще одна новая инспекция рапортует о случаях, когда статический метод вызывается с помощью »→». Она выключена по умолчанию, потому что PHPUnit (см. выше). Включить ее можно здесь: Settings → Editor → Inspections → Static method called as dynamic.
Фреймворки и инструменты
PhpStorm 2016.2 позволяет сохранить произвольный проект как шаблон (Tools → Save Project as Template…), чтобы впоследствии использовать его при создании нового проекта (File → New Project…).
IDE теперь поставляется вместе с новым плагином, который добавляет поддержку Joomla! . А именно: стиль кода, JHtml::_($argument), JText::_($argument), префикс БД и прочее.
Для того чтобы улучшить производительность интерпретатора, PhpStorm позволяет включать Xdebug только по требованию, пост в поддержку (на англ.).
Современные веб-технологии
Как обычно, PhpStorm 2016.2 влючает в себя все улучшения WebStorm 2016.2 сразу или при помощи плагинов. Например, TypeScript 2.0.
Добавлена поддержка Angular CLI и фрагментов кода (code snippets, они же live templates) для Angular 2.
Изображения, JavaScript-файлы и CSS-файлы теперь можно перетащить мышкой в открытый HTML-файл, и соответствующий тег будет вставлен автоматически.
Новые возможности и усовершенствования IntelliJ Platform
Работа с патчами, улучшенная вкладка Log для Git и Mercurial и другие изменения, связанные с системами контроля версий, уже описывались на Хабре и доступны в новейшей версии IDE.
UI претерпел ряд эволюционных изменений. Например, мы объединили вкладку Watches с вкладкой Variables в отладчике; уведомления переехали в правый нижний угол и группируются по типам;, а также теперь можно установить произвольную картинку фона редактора.
IDE теперь «умеет» лигатуры. Просто скачайте и установите соответствующий шрифт (например, FiraCode), после чего включите соответствующую опцию в Settings → Editor → Colors & Fonts → Font (флажок Enable font ligatures).
Благодаря нашим коллегам из команды DataGrip, поддержка баз данных в PhpStorm также была улучшена. Встречайте автодополнение имен баз данных в диалоге настроек Data Source and Drivers, контекстно-зависимое автодополнение SQL и многое другое.
В заключение
Мы подготовили видео (на англ.), демонстрирующее все изменения и улучшения:
Бесплатное обновление до версии 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 версию и остаться на ней и параллельно смотреть альтернативы…