Вот что мы подготовили для вас в этом обновлении:
Мы официально выпустили своего ИИ-помощника AI Assistant, добавив ряд новых возможностей и улучшив уже известные функции, чтобы сделать работу в IDE JetBrains еще эффективнее.
Теперь AI Assistant умеет генерировать многострочные блоки кода. Просто начните вводить новую строку: если у LLM есть предложения, появится сниппет, набранный серым шрифтом. Чтобы принять предложенный код, нажмите Tab.
В настоящее время предложения генерируются в пределах контекста класса или внутри определений функции.
AI Assistant умеет также генерировать тесты для методов классов. Просто поместите курсор на метод класса, для которого нужны юнит-тесты, нажмите Alt+Enter, а затем AI Assistant, и выберите Generate Unit Tests.
Раньше генерировать сниппеты можно было с помощью чат-бота. Теперь для этого можно использовать действие AI Assistant | Generate code…: оно открывает окно запроса прямо в редакторе. В это окно нужно ввести описание кода, который вы хотите сгенерировать. После этого AI Assistant предложит свои варианты, которые можно принять целиком или частично.
Иногда при выполнении PHP-скрипта, при запуске конфигурации или при выполнении действия Composer по тем или иным причинам происходит ошибка. AI Assistant поможет выяснить причину проблемы. Нажмите кнопку Explain with AI в трассировке стека или в сообщении об ошибке, чтобы получить объяснение, сгенерированное ИИ.
Чтобы использовать AI Assistant как дополнительную функцию PhpStorm, вам потребуется подписка JetBrains AI Service.
PhpStorm now supports the Pest test framework out of the box. We recently agreed with the original author of the Pest plugin to take over its development and bundle it in PhpStorm. You can read the details in our recent blog post.
Как и тесты PHPUnit, тесты Pest теперь можно запускать прямо из PhpStorm. Если поместить курсор в тест и вызвать окно запуска, генерируется конфигурация запуска для этого теста. Если поместить курсор внутрь файла, но не внутрь конкретного теста, будут запущены все тесты в этом файле.
Благодаря появлению поддержки Pest в новой версии можно писать утверждения путем вызова функций или методов на $this
. Кроме того, это позволяет улучшить работу автодополнения в функциях тестов: пользователь по мере набора кода видит доступные утверждения.
В Pest можно писать пользовательские ожидания, чтобы сократить число стандартных проверок в тестах. PhpStorm поможет найти использования пользовательских ожиданий и переименовать их.
PhpStorm 2023.3 полностью поддерживает PHP 8.3. Большинство изменений в IDE органично впишутся в привычный процесс работы с PhpStorm, так что вы их даже не заметите. Мы рассказываем только о тех нововведениях, о которых нужно знать, чтобы эффективно ими пользоваться.
#[\Override]
В PHP 8.3 появился новый атрибут #[\Override]
. Его можно использовать, чтобы явно показать свои намерения при переопределении метода. Движок PHP может проверить, действительно ли метод с атрибутом #[\Override]
переопределяет родительский метод, и сгенерировать исключение, если это не так. PhpStorm 2023.3 заранее предупреждает вас о таких случаях.
Кроме того, в тех случаях, когда это применимо, PhpStorm предлагает добавить атрибут #[\Override]
.
json_validate()
В PHP 8.3 в стандартную библиотеку добавлена новая функция json_validate()
. Раньше был только один способ проверить, является ли строка допустимым кодом JSON: декодировать его и посмотреть, возникнут ли ошибки. PhpStorm может распознавать такие шаблоны и предлагает заменить их вызовом функции json_validate()
. Это удобно, если вам достаточно понимать, является ли введенная строка допустимым кодом JSON, поскольку этой функции нужно меньше памяти, чем для декодирования строки.
В PHP 8.3 можно объявлять типы для констант классов. Можно использовать любые объявления типов, кроме void
, callable
и never
.
Для типизированных констант классов PhpStorm предлагает:
В PHP 8.3 прекращена поддержка нескольких функций. PhpStorm предлагает необходимые инспекции, которые позволят их обнаружить.
В PhpStorm 2023.3 добавлен ряд улучшений для разработчиков на Symfony.
Новый встроенный инициализатор проектов для Symfony позволяет создавать новые проекты, используя нужные типы и версии, прямо на главном экране.
Новая версия IDE обеспечивает полную поддержку DQL внутри вызовов методов QueryBuilder: подсветку, автодополнение полей, возможность разрешения в целевой класс модели и многое другое.
Following the introduction of attributes in PHP 8.0, Doctrine annotations are being deprecated and will soon be removed. Чтобы помочь вам перейти на атрибуты Doctrine, PhpStorm 2023.3 предлагает функцию их преобразования из аннотаций.
Кроме того, PhpStorm поддерживает преобразование аннотаций Symfony в соответствующие атрибуты, например #[Required]
, #[Route]
и так далее.
В новой версии мы добавили экспериментальную функцию: возможность исключить директории, полученные из индексированных библиотек. Исключив из проекта такие файлы, вы избежите проблем с несколькими определениями одного объекта и улучшите производительность индексации.
Мы постоянно стремимся сделать работу с дженериками удобнее. Начиная с PhpStorm 2023.3, можно настроить цветовые обозначения для дженериков, чтобы их типы было легко отличить.
Атрибуты используются в коде все чаще, но читать код с длинными многострочными атрибутами из какого-то определенного фреймворка бывает тяжело. В PhpStorm 2023.3 эта проблема решена: многострочные атрибуты можно свернуть.
PHPUnit 10 introduced support for attributes for adding metadata to test classes and test methods, as well as tested code units. Мы внедрили специальную инспекцию и быстрое исправление, которые помогут перейти со старых аннотаций PHPDoc на новый стиль.
PhpStorm 2023.3 предлагает обновленный подход к проверке изменений в файлах. Вам больше не нужно просматривать файлы по одному: все измененные файлы из выборки отображаются в едином фрейме с возможностью прокрутки. Новый инструмент поиска различий можно открыть из окна Git Log. В настоящее время он поддерживает ревью в JetBrains Space, и мы работаем над обеспечением его совместимости с GitLab и GitHub.
В PhpStorm 2023.3 появился новый встроенный параметр Run to Cursor. Он позволяет в ходе отладки выполнить код до определенной строки. После приостановки выполнения программы наведите курсор мыши на строку, до которой нужно выполнить код, и откройте всплывающее окно Run to Cursor. Можно также поместить курсор в нужную строку и нажать сочетание клавиш Alt + F9.
Мы изучили ваши отзывы о новом интерфейсе и добавили возможность скрыть основную панель инструментов при использовании IDE в режиме просмотра по умолчанию — точно так же, как это было в старом интерфейсе. Чтобы скрыть панель инструментов, откройте меню View | Appearance и снимите флажок Toolbar.
В версии PhpStorm 2023.1 мы добавили возможность сохранить несколько вариантов расположения окон и переключаться между ними, чтобы вам было удобнее настраивать свое рабочее пространство. В PhpStorm 2023.3 мы расширили возможности этой функции и добавили вариант Default layout, который позволяет быстро вернуть исходные настройки рабочего пространства. Этот вариант расположения окон нельзя изменить. Чтобы перейти к нему, откройте Window | Layouts.
Чтобы разработчикам было проще одновременно работать в редакторе с разными типами файлов, мы добавили цветовые обозначения вкладок редактора по умолчанию — они соответствуют обозначениям в окне Project.
Благодаря тому, что в PhpStorm добавлены все возможности WebStorm, IDE теперь успешно справляется с некоторыми неприятными проблемами, которые возникали при добавлении инструкций import type
. Кроме того, стало удобнее работать с синтаксисом verbatimModuleSyntax
. Мы добавили возможность настроить инструкции import type
как в TypeScript. Кроме того, улучшено поведение поля exports
в package.json для файлов TypeScript.
В новой версии, когда вы вставляете код HTML в файл JSX, PhpStorm не только преобразует атрибуты, но и автоматически закроет одиночные теги. Эту функцию можно настроить в меню Settings | Editor | General | Smart Keys | JavaScript.
@property
для пользовательских свойств в CSS-файлах To support the new @property
API for creating custom CSS properties, PhpStorm 2023.3 now offers inspections and completion features for explicitly defining CSS custom properties, allowing you to check and restrict property types, establish default values, and determine inheritance possibilities for custom properties.
Мы добавили поддержку defineSlots
: автодополнение и навигацию для имени slot
, а также рефакторинг Rename. Кроме того, добавлена поддержка автодополнения для свойств с defineExpose
. В PhpStorm 2023.3 необходимые импорты для компонентов будут добавляться, исходя из имени, определенного функцией defineOptions
.