Главные новинки этой версии:
xdebug_notify()
В PhpStorm 2024.3 добавлены инспекции и быстрые исправления, упрощающие переход на PHP 8.4, где появилось много новых возможностей. Ниже мы расскажем, как эти возможности поддерживаются в PhpStorm.
Одно из важнейших изменений в PHP за последнее время — хуки свойств: вы можете использовать для свойств хуки get
и set
и отказаться от шаблонных геттеров и сеттеров.
Возможности, которые PhpStorm предлагает для хуков свойств (в том числе в promoted-свойствах):
get
и set
; get
и set
, позволяющее вставить тело хука свойства; get
и set
для свойства через Generate action — работает так же, как Generate | Getters and Setters; Теперь вы можете отдельно определить видимость типизированного свойства для операций чтения и записи.
PhpStorm 2024.3 позволяет правильно реализовать асимметричные области видимости с помощью специальных проверок и быстрых исправлений для следующих случаев:
set
за пределы основной видимости (get
); final
для свойств private (set)
; set
. Версию PhpStorm 2024.3 можно использовать, чтобы преобразовать циклы foreach
в недавно добавленные функции PHP 8.4 array_find()
, array_find_key()
, array_any()
и array_all()
.
new
без скобок В PhpStorm 2024.3 можно опускать скобки вокруг выражения new
в конструкциях типа (new MyClass())->method()
.
Обратите внимание, что функции AI Assistant доступны только с подпиской AI Pro или во время пробного периода.
Мы существенно улучшили качество автодополнения кода PHP с использованием ИИ и уменьшили задержку. В основе улучшений лежит Mellum — новая большая языковая модель (LLM) от JetBrains. Она работает в облаке, лучше понимает контекст и быстрее предлагает наиболее подходящие варианты.
Подробнее о новой LLM JetBrains читайте в нашем блоге.
Предложения для автодополнения кода теперь отображаются с подсветкой синтаксиса, так что пользователю легче их понять.
Когда ИИ предлагает сразу несколько строк кода, их можно принять либо разом, нажав Tab, либо по одному слову (Ctrl+→) или построчно (End).
Благодаря новой функции AI Assistant теперь выявляет и обрабатывает запросы на естественном языке, когда вы вводите их прямо в редакторе. Он сразу же понимает их и генерирует код, так что от вас не требуется никаких дополнительных шагов.
Напротив строк, измененных AI Assistant, PhpStorm оставляет на полях фиолетовую метку, чтобы вы сразу видели, что было обновлено. Если предложенный вариант вам не нравится, можно уточнить первоначальный запрос, нажав на фиолетовую метку или сочетание клавиш Ctrl+/.
В новой версии управление контекстом, который AI Assistant учитывает при подготовке своих предложений, стало более простым и интуитивно понятным. Мы переработали интерфейс, чтобы вы могли видеть и контролировать все элементы контекста. Открытый файл и выделенный в нем код автоматически добавляются в контекст, и вы можете легко добавлять или удалять файлы по своему усмотрению. Кроме того, можно подключить инструкции, действующие сразу для всего проекта, чтобы AI Assistant понимал, на какие части кодовой базы можно опираться.
AI Assistant теперь помогает создавать понятные и лаконичные заголовки и описания для pull- и merge-реквестов прямо в IDE, делая этот процесс быстрее и удобнее.
В области сообщений об ошибках появилась пара новых удобных действий для обработки ошибок, возникших при выполнении запросов SQL, с помощью AI Assistant. Explain with AI открывает чат с ИИ, автоматически отправляет запрос и показывает объяснение ошибки, составленное AI Assistant. Действие Fix with AI генерирует в редакторе исправление, устраняющее ошибку выполнения запроса.
Подробнее обо всех обновлениях JetBrains AI Assistant.
xdebug_notify()
Чтобы сделать отладку PHP еще более удобной, PhpStorm теперь предлагает структурированный способ обработки вывода, отправляемого функцией xdebug_notify()
.
Вызовы xdebug_notify()
появились в Xdebug 3.1 и позволяют выборочно отправлять переменные в консоль отладки в PhpStorm.
Laravel-разработчикам, которые используют Laravel Herd, новая версия PhpStorm 2024.3 предлагает автоматическое распознавание пути к исполняемому файлу PHP на вашей машине, который используется Laravel Herd. Чтобы использовать этот интерпретатор в PhpStorm, откройте настройки интерпретатора командной строки (PHP | CLI interpreter | …) и в диалоге CLI Interpreters выберите нужный исполняемый файл PHP из списка предварительно настроенных вариантов.
PhpStorm 2024.3 существенно упрощает Laravel-разработчикам работу с фреймворком тестирования Pest. Мы обеспечили полную поддержку Pest 3.0 и возможность запускать параллельное и мутационное тестирование с помощью Pest прямо из IDE.
В вышедшей недавно версии Pest 3.0 появилось мутационное тестирование: в код вносятся небольшие изменения, чтобы проверить, смогут ли тесты их выявить.
Параметр Pest Run Tests (Pest) with Mutation можно включить через PhpStorm 2024.3, как и любые другие параметры тестирования: прямо из редактора, в окне Project или через конфигурацию запуска и отладки. Посмотреть результаты тестирования можно в отдельном окне Pest Mutation.
Обязательно убедитесь, что в интерпретаторе PHP, который используется в вашей IDE, установлен также Xdebug 3.0+.
Подробнее читайте в документации по PhpStorm.
В PhpStorm 2024.3 больше не нужно переключаться на терминал, чтобы запустить тесты Pest в параллельном режиме. Просто перейдите к тестовому файлу и выберите Run Tests (Pest) in Parallel через иконку на полях редактора, в контекстном меню в окне Project или через конфигурацию запуска и отладки.
Новая версия PhpStorm может автоматически разрешать конфликты слияния в инструкциях import. Чтобы включить эту функцию, нажмите на иконку шестеренки и в диалоге слияния выберите параметр Resolve conflicts in import statements или откройте меню Settings | Tools | Diff & Merge и выберите Automatically resolve conflicts in import statements.
Теперь у функции Find in Files есть новый режим — Project Files Excluding Git-Ignored. Из поиска исключаются файлы, указанные в .gitignore
, помогая вам сосредоточиться только на нужном коде.
Вы можете управлять фоновыми проверками в процессе коммита с помощью новой опции Run advanced checks after a commit is done в разделе Settings | Version Control | Commit. Она позволяет запускать тесты и инспекции после коммита. Если вы хотите, чтобы проверки завершались до коммита, просто отключите эту опцию.
Теперь на начальном экране IDE отображается название текущей ветки, что помогает лучше ориентироваться при работе с разными версиями проекта и упрощает переключение между рабочими директориями.
Новая версия PhpStorm поддерживает частичную интроспекцию. Раньше всегда выполнялась полная интроспекция схем в MySQL и MariaDB, а обновить метаданные отдельного объекта было нельзя. Каждый раз, когда в консоли выполнялся DDL-оператор, который мог бы изменить объект в схеме базы данных, IDE начинала полную интроспекцию всей схемы. Это занимало много времени и часто мешало нормальной работе.
Теперь PhpStorm анализирует DDL-запрос, определяет, какие объекты могли быть затронуты, и обновляет только их. Если в проводнике баз данных выбрать один объект и вызвать действие Refresh, будет обновлен только этот объект, а не вся схема, как раньше.
JOIN
В некоторых случаях выполнение запроса с чрезмерным количеством операторов JOIN
снижает производительность. Теперь редактор умеет выявлять и подсвечивать такие запросы. Чтобы включить эту инспекцию, перейдите в настройки IDE: откройте Editor | Inspections, разверните раздел SQL и выберите Excessive JOIN count.
Мы перенесли разделение на страницы с панели инструментов в нижнюю часть редактора данных — так заметнее и удобнее.
Теперь PhpStorm по умолчанию исключает папку node_modules
из поиска по файлам в директориях проекта, убирая лишние файлы из выдачи. Если вы хотите вернуть прежнее поведение, включите опцию Search in library files when “Directory” is selected in Find in Files в разделе Settings | Advanced Settings.
Мы улучшили подсказки для компонентов Vue, Svelte и Astro в редакторе. Действие Show component usages теперь находит использования как в импортированных файлах, так и в шаблонах разметки. Мы также добавили фильтр Show Component Usages, который позволяет исключать упоминания компонента при поиске обычных ссылок на файлы. Кроме того, в рефакторинг Rename добавлена опция, которая позволяет автоматически обновлять все упоминания компонента при переименовании его файла.
Теперь в редакторе отображается превью цвета для классов Tailwind CSS — так их проще различать. Мы добавили поддержку метода textDocument/documentColor
из протокола языкового сервиса (LSP), поэтому теперь все плагины на базе LSP автоматически поддерживают эту функцию.
В проектах на Angular 19 теперь по умолчанию используется автономный режим для компонентов, директив и пайпов. Добавлены быстрые действия для преобразования автономных компонентов в обычные и наоборот. Неиспользуемые автономные импорты можно автоматически удалять при форматировании кода или с помощью новой инспекции. Кроме того, улучшена поддержка синтаксиса @let
.
Теперь PhpStorm по умолчанию подсвечивает все вхождения выделенного текста в файле. Так сразу хорошо видно, где в коде встречается выбранный текст. Изменить настройку можно в разделе Settings | Editor |General | Appearance.