The highlights of this version include:
xdebug_notify()
supportPhpStorm 2024.3 comes loaded with new inspections and quick-fixes to help you smoothly upgrade to the feature-rich PHP 8.4. Below is a brief overview of how the new PHP 8.4 features are supported in your PhpStorm workflow.
One of the biggest changes in modern PHP history,
property hooks are designed to eliminate boilerplate getters and
setters by allowing you to implement get
and set
hooks
for properties.
For property hooks (including the property hooks inside promoted properties), PhpStorm provides:
get
and
set
property hooks.
get
and set
keywords with the
insertion of property hook
bodies.
get
and set
hooks for a property
via a Generate
action similar to Generate | Getters and Setters.
Asymmetric visibility allows a typed property to have separate visibility defined for read and write operations.
PhpStorm 2024.3 helps ensure the proper implementation of asymmetric visibility scopes in your code by providing checks and quick-fixes for:
set
visibility wider than the main
(get
) visibility.
final
modifiers for private (set)
properties.
set
visibility scope.
You can use PhpStorm 2024.3 to convert foreach
loops to the newly added
array_find()
, array_find_key()
, array_any()
, and
array_all()
PHP 8.4 functions.
new
without parentheses
PhpStorm 2024.3 supports dropping parentheses around the new
expression in
constructions of the (new MyClass())->method()
type.
Please note that AI Assistant features are only available with an AI Pro subscription or in the trial version.
We’ve significantly improved the quality and reduced the latency of our AI code completion for PHP. These enhancements are powered by Mellum – JetBrains’ new proprietary large language model (LLM) optimized for faster, smarter, and more contextually aware cloud code completion.
For more information about JetBrains’ new LLM, see this blogpost .
Inline code completion suggestions now come with syntax highlighting, improving their readability.
Multiline code suggestions can now be accepted either all at once (by pressing Tab) or incrementally – word by word (Ctrl+→) or line by line (End).
With new inline AI prompting, AI Assistant now detects and processes requests in natural language as you type them directly in the editor. It instantly interprets the requests and generates suggested code without you having to complete any extra steps.
PhpStorm leaves a purple mark in the gutter next to lines changed by AI Assistant, so you can easily see what has been updated. If you don’t like a suggestion, you can adjust the initial prompt by clicking on the purple block in the gutter or pressing Ctrl+/.
In this update, we’ve made managing the context AI Assistant takes into account with its suggestions more transparent and intuitive. A revamped UI lets you view and manage every element included as context, providing full visibility and control. The open file and any selected code within it are now automatically added to the context, and you can easily add or remove files as needed, customizing the context to fit your workflow. Additionally, you can attach project-wide instructions to guide AI Assistant’s responses throughout your codebase.
AI Assistant now helps generate accurate titles and descriptions for your pull and merge requests directly from the IDE, streamlining your workflow and ensuring your descriptions are clear and concise.
A couple of useful new actions for handling SQL query execution errors with AI Assistant are accessible in the error message area. Explain with AI opens the AI chat with a prompt automatically sent and AI Assistant’s response with an explanation of the error. The Fix with AI action generates a fix for the query execution error in the editor.
Read about all the updates to JetBrains AI Assistant.
xdebug_notify()
support
To further enhance your PHP debugging experience, PhpStorm now provides a structured way
to handle the output sent from the xdebug_notify()
function.
Introduced in Xdebug 3.1, xdebug_notify()
calls allow you to selectively
output variables to the debugging console in PhpStorm.
For the Laravel developers using Laravel Herd, PhpStorm 2024.3 now automatically detects the path to the currently used Laravel Herd’s PHP executable on your machine. To use this interpreter in PhpStorm, go to the CLI interpreter settings (PHP | CLI interpreter | …), and in the CLI Interpreters dialog that opens, select the PHP executable from the list of pre-configured options.
PhpStorm 2024.3 significantly improves the Pest testing framework experience for Laravel developers. We’ve implemented full support for Pest 3.0 and the ability to run parallel and mutation tests using Pest right from your IDE.
The recently released Pest 3.0 introduced mutation testing, which makes small changes to the code to track whether the tests can catch them.
You can trigger Pest’s Run Tests (Pest) with Mutation option in PhpStorm 2024.3 like any other test option – right from the editor, from the Project tool window, or via a run/debug configuration – and use the dedicated Pest Mutation tool window to inspect the test results.
Just make sure that the PHP interpreter used in your IDE has Xdebug 3.0+ installed as well.
For details, refer to the PhpStorm documentation.
In PhpStorm 2024.3, you no longer need to switch to the terminal to run Pest tests in parallel mode. Just navigate to the test file and select Run Tests (Pest) in Parallel from the in-editor gutter icon, from the context menu in the Project tool window, or via a run/debug configuration.
PhpStorm can now automatically resolve merge conflicts in import statements. To enable this feature, select the Resolve conflicts in import statements option in the merge dialog under the gear icon, or go to Settings | Tools | Diff & Merge and select Automatically resolve conflicts in import statements.
The Find in Files feature has been enhanced with a new search scope, Project
Files Excluding Git-Ignored. This option excludes any files ignored in .gitignore
files from your search results, helping you focus only on the relevant code when
searching through your project.
You can now manage background checks during the commit process with a new Run advanced checks after a commit is done option under Settings | Version Control | Commit. This setting lets you decide if tests and inspections should run after making a commit. If you want these checks to be completed before the commit happens, simply disable it.
The Welcome screen now shows the branch name, helping you stay organized when handling multiple project versions and allowing you to easily switch between working directories.
PhpStorm now supports fragment introspection. Previously, the introspector could perform only a full introspection of schemas in the MySQL or MariaDB databases but not refresh the metadata of a single object. Every time a DDL statement was executed in the console and that execution could modify an object in the database schema, the IDE would start a full introspection of the entire schema. This was time-consuming and often disrupted the workflow.
Now, PhpStorm can analyze a DDL statement, determine which objects could have been affected by it, and refresh only those objects. If you select a single item in Database Explorer and call the Refresh action, only one object will be refreshed, instead of the entire schema as it was before.
JOIN
clauses
In certain cases, running a query that contains an excessive number of JOIN
clauses is not recommended due to performance degradation. The editor can now identify
and highlight such queries. You can enable this inspection in the IDE settings. To do
so, navigate to Editor |Inspections, expand the SQL section, and
select Excessive JOIN count.
To make grid paging more noticeable in our data editor, we have moved the control for it from the toolbar to the bottom center of the data editor.
PhpStorm now excludes node_modules
results by default when using
Find in Files in project directories, reducing clutter from irrelevant files. You
can restore the previous behavior by enabling the Search in library files when
“Directory” is selected in Find in Files option under Settings | Advanced
Settings.
We’ve enhanced in-editor hints for Vue, Svelte, and Astro components. The Show component usages action now finds usages in both imports and markup templates. We’ve also added a Show Component Usages filter to exclude component usages when searching for regular file references. The Rename refactoring has also been updated with an option to include usages when renaming a component file.
The color preview for Tailwind CSS classes is now shown inline in the editor, making it
easier to tell the colors apart. We've added support for the
textDocument/documentColor
method from the Language Server Protocol (LSP), so all LSP-based plugins now offer this
functionality out of the box.
For projects with Angular
19, PhpStorm now defaults to standalone mode for components,
directives, and pipes. Quick-fixes have been added to help convert between standalone
and non-standalone components. Unused standalone imports can be automatically
removed during code reformatting or via a new inspection. Support for the
@let
syntax has also been improved.
By default, PhpStorm will now automatically highlight all instances of the text you select within a file. This makes it easier to track where the selected text appears throughout your code. If you prefer the previous behavior, you can disable this feature in Settings | Editor |General | Appearance.