Всем привет! Мы рады представить вам третий мажорный релиз 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. Сущности и свойства работают как реальные ссылки и все соответствующие действия над ними тоже доступны: поиск использований, переход к объявлению, быстрое переименование, работа с ассоциациями (отношения) и многое другое.
Для обычной строки необходимо добавить инъекцию языка с помощью аннотации
/** @lang DQL */
. В случае если используется Nowdoc / Heredoc, то можно использовать маркер DQL.В следующих версиях мы планируем развивать поддержку DQL, поэтому будем очень благодарны за ваши отзывы!
PHP 7.3
Финальный релиз PHP 7.3.0 ожидается уже 6 декабря, поэтому мы заблаговременно реализовали поддержку всех новых конструкций в PhpStorm: гибкий синтаксис Heredoc/Nowdoc, завершающие запятые в вызовах функций и методов, литералы в качестве первого операнда instanceof и присвоение с помощью list() по ссылке.
Справедливости ради стоит заметить, что поддержка 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, который сразу исправит все ошибки в файле.
Упрощенная настройка инструментов качества
В 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
автоматически.Доступно и обратное действие – Inline Alias, которое уберет избыточный алиас. Кроме того, алиасы теперь отображаются курсивом, чтобы их было проще отличить визуально от настоящих классов.
Change Class Member Visibility
С помощью этого рефакторинга можно быстро и безопасно изменить модификатор видимости метода или свойства (
public / protected / private
). PhpStorm проанализирует использования выбранного метода или свойства, и предупредит, если есть места, где изменение невозможно и вызовет ошибку.Деплоймент на несколько хостов
PhpStorm поддерживает деплоймент на удаленную машину через FTP/SFTP/FTPS, или в примонтированную папку. Иногда может потребоваться скопировать файлы на множество хостов сразу. Например, если у вас несколько инстансов приложения, или части приложения расположены на разных хостах. В PhpStorm 2018.3 мы добавили группы серверов, чтобы решить эту задачу. Вы можете добавить сколько угодно групп, и в каждую из них добавить сколько угодно хостов. После этого при деплойменте выберите группу и файлы будут отправлены на все хосты группы одновременно.
Улучшения для функций форматирования строк
Работать с функциями
printf()
/ sprintf()
стало приятней благодаря подсветке плейсхолдеров и значений при наведении курсора. Также PhpStorm предупредит, если число параметров не совпадает с числом плейсхолдеров.Кстати, в 2019 году мы планируем реализовать возможность описывать свои кастомные функции форматирования. Подписывайтесь на блог или Твиттер @phpstorm, чтобы следить за новостями.
Пулреквесты GitHub
Теперь можно просматривать пулреквесты GitHub, не покидая PhpStorm. Выберите в меню VCS | Git | View Pull Requests, и откроется окно со списков пулреквестов вашего проекта. Тут же можно создать локальную ветку из пулреквеста.
Кроме того была добавлена поддержка подмодулей Git, возможность игнорировать символы пробела при слиянии изменений, а также загружать изменения из нескольких репозиториев одновременно, и многое другое.
Веб-технологии
PhpStorm включает в себя все нововведения и улучшения WebStorm, среди которых:
- Автоимпорты в JavaScript
- Улучшилась поддержка шаблонов Angular: стали точнее автодополнение и навигация
- Поддержка Vuetify
- Для React-приложений улучшено автодополнение, а механизм инспекций предупредит о неопределенных компонентах
Подробнее обо всех улучшениях от команды WebStorm – на сайте.
Улучшения IDE
Search Everywhere
Если вам нужно что-либо найти, нажмите Shift-Shift и начните печатать. В обновленном диалоге поиска Search Everywhere добавлены табы для поиска по классам, файлам, символам и IDE (настройками и доступным действиям). Переключать области поиска можно нажатием Tab.
Новая высококонтрастная тема для людей с ограниченными возможностями.
Из приятных мелочей:
- Многострочные TODO комментарии
- Многострочный поиск в Find in Path
- В терминале теперь после закрытия PhpStorm сохраняются имена открытых табов и текущие рабочие директории!
Базы данных
Как всегда, PhpStorm включает в себя все фичи от команды DataGrip:
- Поддержка Cassandra (а еще, начиная с 2018.2.2, и ClickHouse)
- Масса улучшений в автодополнении
- Поддержка расширений PostgreSQL
- Возможность быстро задавать псевдонимы таблиц
Прочие улучшения
- В окне отладчика теперь можно быстро найти переменную, просто начав печатать её имя.
- При запуске HTTP-запросов автоматически создаются и конфигурации запуска. Такие конфигурации можно также создавать вручную.
- При разработке PHPUnit-тестов появилась возможность генерировать тестовые методы, а также методы
setUp
иtearDown
, запускаемые перед и после теста, соответственно. - PhpStorm 2018.3 автоматически настроит среды тестирования (PHPUnit, Codeception, Behat, PHPSpec) на основе composer.json и файлов конфигурации, а также создаст соответствующие конфигурации запуска.
Пожалуй, это все, о чем мы хотели бы вам рассказать. Но это далеко не все, что вошло в релиз. Полный список изменений, как всегда, можно найти в очень большом release notes. Сообщайте о проблемах в нашем трекере, ну или просто оставляйте свои комментарии под этим постом или в нашем блоге.
Спасибо за внимание!
Команда JetBrains PhpStorm