Доступен PhpStorm 2018.3

ubdo0dzskyrm7jdjtv8tpmxny4a.jpeg

Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году. Добавлены поддержка DQL, PHP CS Fixer, деплоймент на множество хостов одновременно, пулреквесты GitHub, новые рефакторинги и много других улучшений.

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

Под катом обзор основных нововведений. (Осторожно, много картинок)

Поддержка DQL


Doctrine Query Language — это язык запросов объектной модели, который позволяет создавать запросы к базе данных, используя имена PHP классов и свойств. В PhpStorm 2018.3 реализована продвинутая поддержка DQL. Сущности и свойства работают как реальные ссылки и все соответствующие действия над ними тоже доступны: поиск использований, переход к объявлению, быстрое переименование, работа с ассоциациями (отношения) и многое другое.

vvzkb8plzjbt1hdhhdnkltgmquo.gif

Для обычной строки необходимо добавить инъекцию языка с помощью аннотации /** @lang DQL */. В случае если используется Nowdoc / Heredoc, то можно использовать маркер DQL.

В следующих версиях мы планируем развивать поддержку DQL, поэтому будем очень благодарны за ваши отзывы!

PHP 7.3


Финальный релиз PHP 7.3.0 ожидается уже 6 декабря, поэтому мы заблаговременно реализовали поддержку всех новых конструкций в PhpStorm: гибкий синтаксис Heredoc/Nowdoc, завершающие запятые в вызовах функций и методов, литералы в качестве первого операнда instanceof и присвоение с помощью list () по ссылке.

57wwvlvcmtidjehvrxcf3pbokai.png

Справедливости ради стоит заметить, что поддержка PHP 7.3 доступна и в предыдущей версии 2018.2 начиная с обновления 2018.2.5.

Поддержка PHP CS Fixer


В PhpStorm уже была поддержка PHP_CodeSniffer, который помогает находить нарушения правил стиля кодирования. Однако исправлять эти ошибки вручную не так удобно. Особенно в большой кодовой базе или легаси-проекте. Теперь, с поддержкой PHP CS Fixer в PhpStorm, нужно лишь добавить PHP CS Fixer в качестве зависимости в composer.json и запустить composer install. Соответствующая инспекция в PhpStorm включится автоматически. После этого в файле с нарушениями правил можно запустить quick-fix, который сразу исправит все ошибки в файле.

f1bhkl0pvzldexwfbgrkvmfgc9a.gif

Упрощенная настройка инструментов качества


В PhpStorm теперь есть поддержка трех инструментов: PHPCS, PHPMD, PHP CS Fixer. Для удобства мы объединили настройки всех инструментов на странице Preferences | Language & Frameworks | PHP | Quality Tools.

Автоматический выбор стандартов для PHP_CodeSniffer


На основе зависимостей вашего composer.json, PhpStorm автоматически определит следующие стандарты кодирования: Symfony, Doctrine, Drupal, WordPress, Joomla!, Magento, MediaWiki, Yii 2, and CakePHP.

Новые рефакторинги


Replace with Alias
Представьте, что у вас есть какой-то импорт, например use Foo\Bar. С помощью нового рефакторинга вы можете ввести алиас и заменить импорт, скажем, на use Foo\Bar as Baz, при этом все вхождения Bar будут заменены на Baz автоматически.

euasn7x_s2hkdxa2a-3z6hrqdqi.gif

Доступно и обратное действие — Inline Alias, которое уберет избыточный алиас. Кроме того, алиасы теперь отображаются курсивом, чтобы их было проще отличить визуально от настоящих классов.

Change Class Member Visibility

С помощью этого рефакторинга можно быстро и безопасно изменить модификатор видимости метода или свойства (public / protected / private). PhpStorm проанализирует использования выбранного метода или свойства, и предупредит, если есть места, где изменение невозможно и вызовет ошибку.

9asrotj7fmokffqbhofd2x_qwda.gif

Деплоймент на несколько хостов


PhpStorm поддерживает деплоймент на удаленную машину через FTP/SFTP/FTPS, или в примонтированную папку. Иногда может потребоваться скопировать файлы на множество хостов сразу. Например, если у вас несколько инстансов приложения, или части приложения расположены на разных хостах. В PhpStorm 2018.3 мы добавили группы серверов, чтобы решить эту задачу. Вы можете добавить сколько угодно групп, и в каждую из них добавить сколько угодно хостов. После этого при деплойменте выберите группу и файлы будут отправлены на все хосты группы одновременно.

abfkv9j4zcs5533-w98tuhiyjhi.gif

Улучшения для функций форматирования строк


Работать с функциями printf() / sprintf() стало приятней благодаря подсветке плейсхолдеров и значений при наведении курсора. Также PhpStorm предупредит, если число параметров не совпадает с числом плейсхолдеров.

Кстати, в 2019 году мы планируем реализовать возможность описывать свои кастомные функции форматирования. Подписывайтесь на блог или Твиттер @phpstorm, чтобы следить за новостями.

Пулреквесты GitHub


Теперь можно просматривать пулреквесты GitHub, не покидая PhpStorm. Выберите в меню VCS | Git | View Pull Requests, и откроется окно со списков пулреквестов вашего проекта. Тут же можно создать локальную ветку из пулреквеста.

wk67pfbe0cb8ycomccyt-yofpr8.png

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

Веб-технологии


PhpStorm включает в себя все нововведения и улучшения WebStorm, среди которых:

  • Автоимпорты в JavaScript
  • Улучшилась поддержка шаблонов Angular: стали точнее автодополнение и навигация
  • Поддержка Vuetify
  • Для React-приложений улучшено автодополнение, а механизм инспекций предупредит о неопределенных компонентах


Подробнее обо всех улучшениях от команды WebStorm — на сайте.

Улучшения IDE


Search Everywhere

Если вам нужно что-либо найти, нажмите Shift-Shift и начните печатать. В обновленном диалоге поиска Search Everywhere добавлены табы для поиска по классам, файлам, символам и IDE (настройками и доступным действиям). Переключать области поиска можно нажатием Tab.

9nsytubf4ik8kdmbhs_azqvfcvq.png

Новая высококонтрастная тема для людей с ограниченными возможностями.

9bv6bcfu4nxzddlwcvfoho3bn6w.png

Из приятных мелочей:

  • Многострочные TODO комментарии
  • Многострочный поиск в Find in Path
  • В терминале теперь после закрытия PhpStorm сохраняются имена открытых табов и текущие рабочие директории!


Базы данных


Как всегда, PhpStorm включает в себя все фичи от команды DataGrip:

  • Поддержка Cassandra (а еще, начиная с 2018.2.2, и ClickHouse)
  • Масса улучшений в автодополнении
  • Поддержка расширений PostgreSQL
  • Возможность быстро задавать псевдонимы таблиц
    2f_bcy-ysfzl4aqkymkcqs-hzui.gif


Прочие улучшения


  • В окне отладчика теперь можно быстро найти переменную, просто начав печатать её имя.
  • При запуске HTTP-запросов автоматически создаются и конфигурации запуска. Такие конфигурации можно также создавать вручную.
  • При разработке PHPUnit-тестов появилась возможность генерировать тестовые методы, а также методы setUp и tearDown, запускаемые перед и после теста, соответственно.
  • PhpStorm 2018.3 автоматически настроит среды тестирования (PHPUnit, Codeception, Behat, PHPSpec) на основе composer.json и файлов конфигурации, а также создаст соответствующие конфигурации запуска.


Пожалуй, это все, о чем мы хотели бы вам рассказать. Но это далеко не все, что вошло в релиз. Полный список изменений, как всегда, можно найти в очень большом release notes. Сообщайте о проблемах в нашем трекере, ну или просто оставляйте свои комментарии под этим постом или в нашем блоге.

Спасибо за внимание!
Команда JetBrains PhpStorm

© Habrahabr.ru