Первое крупное обновление PhpStorm в 2020 году несет в себе много возможностей для повышения продуктивности
Все действия по работе с зависимостями теперь интегрированы прямо в редактор и доступны непосредственно в файле composer.json.
Мы убрали диалог управления зависимостями, потому что работать с пакетами из файла composer.json намного проще.
Чтобы добавить новый пакет, начните вводить его имя в разделе require(-dev)
или нажмите Ctrl+Space и выберите нужный пакет из списка.
Будут также перечислены все доступные версии определенного пакета.
Начиная работу над новым проектом, вы можете создать файл composer.json, используя шаблон. Кликните правой кнопкой мыши в дереве проекта и выберите New -> composer.json File.
Если зависимость указана в файле composer.json, но еще не установлена, PhpStorm обнаружит ее и подсветит.
Чтобы ее установить, нажмите Alt+Enter и выберите Update package (обновить пакет) или Update all packages (обновить все пакеты).
Если нажать Ctrl+Click на пакете, PhpStorm подсветит папку c этим пакетом в каталоге vendor в дереве проекта. Если нажать на файле, он откроется в редакторе.
С помощью этих же сочетаний клавиш — Ctrl+Click или Ctrl+B — можно открыть в браузере любую ссылку из composer.json.
Напротив каждой записи в секции скриптов есть зеленый значок, нажав на который можно мгновенно запустить скрипт.
При добавлении новой записи автодополнение теперь поддерживает ссылки на скрипты, двоичные файлы из каталога vendor/bin и любые PHP-файлы из исходников проекта.
Для более быстрой генерации отчетов о покрытии кода в дополнение к Xdebug теперь можно использовать легковесное PHP-расширение krakjoe/pcov или встроенный отладчик PHPDBG.
Вы можете создать конфигурацию запуска для тестов. В настройках конфигурации есть раскрывающийся список, в котором можно выбрать драйвер для анализа покрытия кода: Xdebug, PCOV или PHPDBG.
Выберите, что вам больше нравится, нажмите кнопку Run with Coverage на главной панели инструментов и изучайте результаты анализа.
В PhpStorm 2020.1 есть инструменты, которые помогут вам легко перейти на свежую версию PHPUnit.
Все устаревшие элементы подсвечиваются в редакторе. Наведите курсор на устаревший объект, нажмите Alt+Enter и выберите из списка предпочтительное быстрое исправление. Его также можно выбрать в нижней части окна с описанием ошибки.
Чтобы быстро создать новый тестовый класс PHPUnit, используйте действие Create new PHP Test, нажав Alt+Enter на имени класса.
Мы добавили несколько улучшений в ядро PhpStorm — механизм вывода типов.
Если PhpStorm уже знает правильный тип переменной, избыточный тег @var
с информацией о типе будет подсвечен. Его можно удалить с помощью быстрого исправления Remove @var, нажав Alt+Enter.
Отслеживать допустимость значения null непросто, и в некоторых местах PhpStorm это не удавалось. Но к версии 2020.1 это не относится. PhpStorm знает, когда переменная имеет значение null, а когда — нет, и помогает избежать проблем, связанных с допустимостью этого значения.
В теле замыкания, которое передано в функции array_map()
и array_filter()
, теперь работает автодополнение для аргументов.
Если вы перебираете массив с известным набором элементов, вам больше не нужно дополнительно указывать тип через тег @var
: PhpStorm выведет тип автоматически.
Мы внедрили сортировку вариантов автодополнения на основе машинного обучения еще в версии 2019.3. IDE упорядочивает варианты автодополнения во всплывающем окне по степени их актуальности: самые подходящие располагаются наверху.
По умолчанию эта функциональность отключена. Чтобы включить ее, установите флажки Rank completion suggestions based on Machine Learning и PHP в разделе Preferences/Settings | Editor | General | Code Completion.
Перемещение метода из одного класса в другой стало проще, поскольку это можно сделать одним атомарным действием.
Поместите курсор на метод, нажмите F6 (или Ctrl+T, 3), а затем выберите целевой класс. Только и всего.
Если блок PHPDoc содержит только теги @param
с аннотациями типов, его можно удалить и использовать встроенные средства объявления типов параметров.
Нажмите Alt+Enter и выберите быстрое исправление Remove redundant PHPDoc comment.
PhpStorm подсвечивает тернарные выражения, которые можно сократить и упростить. С помощью быстрого исправления (Alt+Enter) их можно заменить эквивалентным простым выражением.
Передача параметров по ссылке может привести к неожиданным последствиям. PhpStorm 2020.1 находит и подсвечивает параметры, которые без надобности помечены как переданные по ссылке.
То же самое касается передачи по ссылке в циклах foreach.
Чтобы помочь PhpStorm правильнее анализировать ваш код, вы можете заносить дополнительную информацию в специальный файл .phpstorm.meta.php. И здесь есть несколько улучшений.
Раньше с помощью директив override()
, map()
и type()
можно было изменить поведение только первого параметра функций. В PhpStorm 2020.1 мы это исправили: теперь можно явно указать номер параметра.
Если бы вам пришлось получать некоторые объекты с помощью метода __get()
, вы, скорее всего, потеряли бы информацию о типе. Вместо использования тегов @var
и @property
теперь можно указать эту информацию в файле .phpstorm.meta.php. Это работает, даже если тип заранее не известен.
PhpStorm считает, что функции die ()
и exit ()
, как и другие любые функции, вызывающие исключение, завершают выполнение скрипта. Но в приложениях могут встречаться и другие функции, которые следует рассматривать как «точки выхода», например, функция отладки dd ()
. Теперь можно пометить любую функцию как точку выхода.
Благодаря поддержке метаданных уже было можно использовать автодополнение, даже если объект использовался в качестве контейнера массива для других объектов. Однако такое автодополнение не работало для ключей. Теперь работает.
Специальные значки на поле редактора теперь указывают на то, что поведение было изменено с помощью директив override ()
, exitPoint ()
или expectArguments()
в файле .phpstorm.meta.php. А поскольку в проекте может быть любое количество таких метафайлов, нажав на значок, вы откроете тот, который используется именно в этом месте.
При разработке веб-приложений или ресурсов API теперь легко начать отладку прямо из PhpStorm.
Для этого создайте или откройте http-файл, добавьте запрос, а затем используйте Alt+Enter для запуска PHP Debug. К запросу добавится файл cookie XDEBUG_SESSION
, и отладка будет производиться аналогично расширению браузера Xdebug.
В новую версию PhpStorm вошли все функции и улучшения из WebStorm 2020.1. Некоторые поддерживаются по умолчанию, другие — через бесплатные плагины, которые можно скачать из Plugin Marketplace.
Новые действия и инспекции (Alt+Enter) сэкономят ваше время. Например, можно быстро преобразовать код в optional chaining и/или nullish coalescing — синтаксис, появившийся в последних версиях JavaScript и TypeScript.
Благодаря встроенной поддержке библиотеки Vuex и Composition API из Vue 3 создавать приложения Vue.js стало еще проще.
Новая опция Run on save for files позволяет применять форматирование Prettier ко всем файлам, указанным в настройках IDE и отредактированным в проекте, как только вы их сохраните. Для этого больше не нужны плагины или file watchers.
Плагин Grazie теперь встроен в PhpStorm. Он мгновенно находит опечатки, орфографические и грамматические ошибки, которые сразу предлагает исправить.
Проверка орфографии по умолчанию включена в файлах Markdown. Для комментариев PHPDoc, строк HEREDOC/NOWDOC и строковых литералов в PHP-файлах проверку можно включить в разделе Preferences/Settings | Editor | Proofreading | Grammar.
Для более тщательной проверки правописания включите инспекцию Grammar в разделе Preferences/Settings | Editor | Inspections -> Proofreading.
В новом режиме LightEdit можно использовать PhpStorm как простой текстовый редактор и быстро вносить изменения в файлы, не открывая IDE полностью.
Чтобы попробовать этот режим, откройте файл из командной строки (как это сделать, читайте в документации) или из файлового менеджера операционной системы. Если IDE не запущена, файл откроется в режиме LightEdit.
Теперь можно запускать несколько сеансов терминала одновременно и следить за выводом сразу нескольких инструментов, не переключаясь между вкладками.
Параллельные сеансы открываются и закрываются через контекстное меню.
Все SSH-соединения теперь собраны в одном месте — в разделе Preferences/Settings | Tools | SSH Configurations.
Вы можете создать соединение один раз и использовать его в разных местах в IDE, например в конфигурации развертывания, для удаленного интерпретатора PHP или в качестве SSH-терминала.
Светлая тема теперь выглядит одинаково во всех операционных системах и называется IntelliJ Light. Если вы хотите переключиться на старую тему, перейдите в меню Preferences/Settings | Appearance & Behavior | Appearance | Theme.
JetBrains Mono — это бесплатный моноширинный шрифт с открытым исходным кодом, разработанный специально для разработчиков. Мы сделали этот шрифт, чтобы вам было проще читать код. Теперь он установлен по умолчанию в PhpStorm.
В новом режиме Zen окно редактора занимает весь экран, а остальные элементы интерфейса скрыты, чтобы вы могли полностью сосредоточиться на коде.
Попробуйте новый режим: View | Appearance | Enter Zen Mode.
Мы переделали диалог Interactively Rebase from Here, чтобы вы могли контролировать весь процесс перебазирования. Вот что теперь в нем можно сделать:
Чтобы упростить процесс выполнения коммитов, мы добавили новое окно Commit для обработки любых задач, связанных с коммитами. У новых пользователей это окно включено по умолчанию.
Остальные могут попробовать новый способ, выбрав опцию Use non-modal commit interface в меню Preferences/Settings | Version Control | Commit.
PhpStorm 2020.1 включает в себя новую функциональность для работы с базами данных, подготовленную командой DataGrip. Все подробности здесь: Что нового в DataGrip 2020.1.
Наконец можно экспортировать результат запроса в таблицу Excel.
Теперь результаты запросов к базе данных можно просматривать в редакторе. Чтобы попробовать эту функцию, отметьте галочкой опцию Show output results in the editor в меню Preferences/Settings | Database | General.
Пользователям PhpStorm хорошо знакомо понятие конфигурации запуска. Теперь, помимо PHP-скриптов, тестов и HTTP-запросов, можно запускать и запросы к базе данных.
.idea
и предоставить общий доступ к ним через управление версиями. Откройте диалог Run/Debug Configurations и выберите Store as project file.