PhpStorm Changelog

What's new in PhpStorm 2024.1 Build 241.14494.159 RC

Mar 25, 2024
  • The most notable changes and bug fixes in this build include:
  • Fix: Constant reindexing of mpdf project [WI-76620]
  • Fix: Add an option to quickly enable run of built-in formatter before external [WI-76580]
  • Fix: [LLM] Generated Pest tests are not added to existing test classes [WI-76561]
  • Fix: [LLM] Add generated tests into existing file when possible [WI-76410]
  • Fix: Completion of properties/methods from class installed via importmap doesn't work [WI-76194]
  • Fix: Resolve of imported JS class declared in importmap doesn't redirect to assets/vendor [WI-76193]

New in PhpStorm 2024.1 Build 241.14494.120 Beta 2 (Mar 18, 2024)

  • PhpStorm 2024.1 Beta 2 is now available:
  • This build brings a bunch of bug fixes and quality-of-life improvements.
  • Here are the most notable changes and bug fixes in this build:
  • New: Add method stubs: Add an option to avoid #[Override] [WI-75876]
  • New: Make class FQNs inside dd/dump output in terminal clickable [WI-76326]
  • Fix: Class FQNs inside dd/dump output in terminal are not clickable in a specific case [WI-76508]
  • Fix: Add registry key to disable lazy type calculations via Gists [WI-76504]
  • Fix: Remove unnecessary qualifier removes the whole blade file [WI-76327]
  • Fix: PhpUnit deprecated TestCase methods: QF incorrectly converts code [WI-76304]
  • Fix: PhpUnit deprecated method: False positive for methods even if old PHPUnit version installed [WI-76267]
  • Fix: Converting promoted property to traditional produces invalid code [WI-76185]
  • Fix: Missing parameter's type: QF suggests incorrect type when type is declared as class-string in PhpDoc [WI-76077]
  • Fix: Missing return type: QF suggests incorrect type when return name of class [WI-75977]
  • Fix: Argument type does not match the declared: False positive for class-string type declaration [WI-75968]
  • Fix: PhpRedundantDocCommentInspection: False positive weak warning displayed for PhpDoc tag with class-string type [WI-75956]
  • Fix: "Add remaining enum cases" adds all cases again in addition to existing [WI-75952]
  • Fix: Pest: Hide from External Libraries [WI-75686]

New in PhpStorm 2024.1 Build 241.14494.28 Beta (Mar 11, 2024)

  • Here are the most notable changes and bug fixes in this build:
  • Fix: XDebug / PHPStorm Step Debugging - modified values aren't detected [WI-75372]
  • Fix: Autocomplete showing duplicate methods if class implements interface [WI-72549]
  • Fix: Feature test gutter icons automatically assume Behat configuration even if Codeception is enabled [WI-73166]
  • Fix: Use symfony console to install importmap module via quick-fix [WI-76170]
  • Fix: Rename "Project from Version Control" action in the Project Widget [WI-76392]
  • Fix: Module isn't installed in importmap: title contains injected value [WI-76389]
  • Fix: Module isn't installed in importmap: Inspection is placed under wrong group [WI-76388]
  • Fix: Pest plugin doesn't get published on Marketplace anymore so IDEA users can't update it [WI-76382]
  • Fix: Pest Inspections: change naming from 'must' to 'should' [WI-76369]
  • Fix: Convert intention to run importmap:require to inspection [WI-76172]
  • Fix: Import of js module in subproject is highlighted as not installed even if it is present in importmap.php [WI-76167]
  • Fix: Deployment: Freeze on batch apply of changes in diff dialog [WI-75812]
  • New: Pest: Add Go To "method -> test" and "test -> method" [WI-75699]
  • Fix: Deployment: Exception after uploading same file to remote host twice [WI-75226]
  • Fix: Pest plugin: Type of $this in Pest test is inferred wrong in subproject [WI-75198]
  • Fix: Type of $this in closure in Pest test should be resolved to target Pest test class [WI-75120]
  • Fix: Symlink files/folders are not shown in the UI as being linked (New UI) [IDEA-295555]
  • Fix: Pressing Ctrl+tab causes an exception. java.lang.AssertionError: Can't create key stroke for control 36 [IDEA-270009]
  • Fix: IllegalArgumentException at ChildInfoImpl. [IDEA-259257]

New in PhpStorm 2024.1 Build 241.14024.21 EAP 6 (Mar 6, 2024)

  • Here are the most notable changes and bug fixes in this build:
  • Fix: Pest custom expectation names must be unique: change inspection's severity from error to warning [WI-76215]
  • Fix: Allow Ignoring Folders and Files in File/Folder Diff Viewer [IDEA-123224]
  • New: Action to restart the ESLint Service [WEB-38066]
  • New: Outdated HighlightInfo's should be removed as soon as the relevant annotator or inspection finishes [IDEA-321013]
  • Fix: Can't disable 'IDE Internal Error' red flashing icon when error occurs in a third-party plugin [IDEA-306015]
  • New: GitHub: provide YAML autocompletion for actions [IDEA-308234]
  • New: GitLab Integration: Add ability to mark files viewed [IDEA-331251]
  • New: LSP "workspace/executeCommand" support [IDEA-325911]
  • Fix: Pest custom expectation names must be unique: change inspection's severity from error to warning [WI-76215]
  • Fix: Allow Ignoring Folders and Files in File/Folder Diff Viewer [IDEA-123224]
  • New: Action to restart the ESLint Service [WEB-38066]
  • New: Outdated HighlightInfo's should be removed as soon as the relevant annotator or inspection finishes [IDEA-321013]
  • Fix: Can't disable 'IDE Internal Error' red flashing icon when error occurs in a third-party plugin [IDEA-306015]
  • New: GitLab Integration: Add ability to mark files viewed [IDEA-331251]
  • New: GitHub: provide YAML autocompletion for actions [IDEA-308234]
  • New: LSP "workspace/executeCommand" support [IDEA-325911]

New in PhpStorm 2024.1 Build 241.12662.49 EAP 4 (Feb 21, 2024)

  • Here are the most notable changes and bug fixes in this build:
  • Fix: Object-like arrays: Specific int/float values are not supported [WI-65281]
  • Fix: "Member has protected access" false negative in Pest tests [WI-62239]
  • Fix: Running tests with Pest fails silently if no interpreter is configured [WI-74937]
  • Fix: Pest: Move "Duplicated test names" inspection to annotator [WI-75300]
  • Fix: Pest: not possible to go to a test by clicking on a test in the Run Tool Window (Pest v1.21) [WI-75803]
  • Fix: Pest generate test: put caret inside the generated test via template [WI-75822]
  • Fix: Full Line Completion sometimes suggests invalid options for constants [WI-75904]
  • Fix: Pest: running tests through method execution perform more than one selected test [WI-76089]
  • New: Stylelint: add option to fix files on save [WEB-50148]
  • Fix: Setting Sync sync failed. couldn't get settings from server: Authentication required [IDEA-343073]
  • New: Structure Window Tool with JSX/Functional Component/Hooks support [WEB-39957]
  • Fix: HTTP Client OAuth2: Support Device Grant Type [IDEA-337310]
  • New: Show React useCallback hook result in File Structure [WEB-46543]
  • New: Display review comments and control in editor for branches that have associated Pull request [IDEA-241095]
  • New: Vue 3.4 v-bind same-name shorthand [WEB-64877]
  • New: Improve React component's appearance in Structure view [WEB-34513]
  • Fix: Quick Documentation formatting shortcomings [IDEA-229463]
  • Fix: SASS/SCSS: math.div is not recognized inside interpolation [WEB-52031]
  • Fix: Put each property on its own line in quick documentation of types [WEB-55198]
  • Fix: QuickDoc +completion: after moving focus to documentation popup impossible to select items in completion list by keys [IDEA-168388]
  • Fix: Wrong distances in Javadoc Rendering of Paragraphs and Headings [IDEA-242555]
  • New: Disable duplicate analysis between specific files? [IDEA-258220]
  • Fix: Invalid implementation of mouseMoved method in the ContainerInlayPresentation [IDEA-342913]

New in PhpStorm 2024.1 Build 241.10840.21 EAP 2 (Feb 2, 2024)

  • Here are the most notable changes and bug fixes in this build:
  • New: Add support for importmap.php from Symfony's AssetMapper [WI-74271]
  • New: Rsync: support in WSL [WI-63321]
  • New: Support calling static method on class-string returned from a method [WI-66383]
  • New: DQL Query Builder support: Add its own color scheme configuration [WI-75527]
  • Fix: External formatter invoked on commit is being applied after commit [WI-75383]
  • New: Swap Sides action for Compare with invoked on a remote file [WI-50981]
  • Fix: Laravel Pint: Add custom ruleset option [WI-75800]
  • Fix: No "Closing tag matches nothing" warning for Blade files [WI-75796]
  • Fix: Pest: Normalize name of generated test [WI-75719]
  • Fix: Pest: Files in test results don't get linkified when Pest is in a submodule [WI-75138]
  • Fix: New UI: Traits still have an old icon [WI-70160]
  • New: Support iterating and calling methods on list [WI-66369]
  • Fix: Deployment: types of deployment configurations are ungrouped [WI-75837]
  • Fix: Laravel Pint: Cannot change ruleset [WI-75799]
  • New: Notification with fix: Your XML configuration validates against a deprecated schema. Migrate your XML configuration using "--migrate-configuration" [WI-75765]
  • Fix: The "Port" input field in the Settings | PHP | Servers is too small [WI-75743]
  • Fix: Pest: Namespace isn't added to generated test [WI-75717]
  • Fix: Pest assertion can be simplified: Make default severity weak-warning [WI-75681]
  • Fix: Icons for New PHP file/class are not displayed in project tree [WI-75660]
  • Fix: PHPUnit 11: Unknown option "--cache-result-file" [WI-75593]
  • Fix: Exception after attempt to generate a Pest test via AI Assistant [WI-75591]
  • Fix: PluginException after attempt to create a Symfony project in IntelliJ Ultimate + PHP plugin [WI-75281]
  • New: Refactor Extract Method: Settings to Control Output (let/const, function/arrow) [WEB-26073]
  • Fix: Previous Scope setting for Rename Refactoring is not remembered [IDEA-228855]
  • Fix: Support --update-refs for interactive rebase [IDEA-305851]
  • Fix: VCS popup: typing 'ne' doesn't select 'New Branch...' anymore [IDEA-310188]
  • New: Structure Window Tool with JSX/Functional Component/Hooks support [WEB-39957]
  • Fix: Velocity Error when creating new file/class: Unable to find resource 'File Header.java' [IDEA-333433]
  • Fix: Branches Popup - search does not match repository [IDEA-320029]
  • Fix: Closed MR is shown for current branch [IDEA-337071]

New in PhpStorm 2024.1 Build 241.8102.119 EAP 1 (Jan 21, 2024)

  • Here are the most notable changes and bug fixes in this build:
  • New: Deployment: upload into a temporary file first if remote file exists [WI-20248]
  • Fix: External Formatter breaks indentation for PHPDoc blocks and method generation [WI-73767]
  • New: Support array shapes inference when iterating over array elements [WI-67555]
  • New: Suport for Laravel 9 Component Short Slot Tags [WI-66784]
  • New: Option to only apply External Formatter on Reformat Code, or a separate action to trigger it [WI-71860]
  • New: PHPUnit: add ability to "Rerun Failed Tests" for debug [WI-30464]
  • New: Add support for parsing of expanded unsealed array declaration [WI-73627]
  • Fix: object shape isn't inferred in advanced array declaration [WI-72917]
  • Fix: AI Assistant generates PhpUnit tests when only Pest configurations are available in the project [WI-75442]
  • New: Support PHP_IDE_CONFIG in web debugging [WI-74990]
  • Fix: Pest: Test name case inspection leaks into dataset [WI-75044]
  • New: Add an option to create Pest test from "Create new test" intention [WI-75106]
  • New: New inspection: Pest assertion can be simplified [WI-75230]
  • New: Support "go to failed data set" for tests with #[DataProvider(...)] attribute [WI-75241]
  • Fix: Pest version isn't displayed in Test Frameworks for local configuration [WI-75473]
  • Fix: Make Pest plugin dynamic [WI-75651]
  • Fix: Pest: Exception when invoke context menu on test directory [WI-75675]
  • Fix: IAE when open successful data set in PhpUnit result tool window [WI-75676]
  • New: $Prompt$ macro: add a label / text to give the user a hint what to enter in the prompt [IDEA-89869]
  • New: Create Global Copyright Profiles [IDEA-136468]
  • Fix: IDE shows "Corresponding file is not included in tsconfig.json" error for Astro files with installed typescript [WEB-59503]
  • New: Full IDE zoom below 100% [IDEA-316986]
  • Fix: Hard wrap with actual line breaks in the built-in terminal on Windows 10 [IDEA-228796]
  • Fix: GitHub plugin: Can no longer pull request files mark as read [IDEA-338906]
  • Fix: Cannot run the specified Pandoc executable [IDEA-290970]
  • Fix: Can't change visual guides since updating to 2023.3 [IDEA-339976]
  • Fix: SSH Agent Docker connection doesn't work after upgrading to 2023.3 [IDEA-339946]
  • Fix: Spellchecker works wrong for literals "Kyiv" and "Lviv" [IDEA-259080]
  • Fix: Not working search emoji after upgrade to version 2023.2 [IDEA-327171]
  • Fix: Vue+Vuetify: boolean attributes cause "attribute requires value" warning [WEB-61631]

New in PhpStorm 2023.3 Build 233.11799.172 RC (Dec 6, 2023)

  • PhpStorm 2023.3 Release Candidate is now available, and it's the final build before the stable release.
  • The most notable changes and bug fixes in this build include:
  • Fix: 'Natural' live templates don't get reformatted accordingly to Code Style [WI-74894]
  • Fix: Libraries from vendor dir are added to excluded directories even after they explicitly removed from there [WI-74865]
  • Fix: "IllegalArgumentException Invalid range specified" in query builder [WI-74685]

New in PhpStorm 2023.3 Build 233.11799.21 Beta (Nov 15, 2023)

  • Here are the most notable changes and bug fixes in this build:
  • New: Add ability to exclude files/directories from External Libraries [WI-22564]
  • Fix: When renaming a file select only file name part for files with double extensions [WI-27593]
  • Fix: False positive notification about missed vendor directory when it exists [WI-74762]
  • Fix: Network shared disks shouldn't be displayed in include path tree [WI-74837]
  • Fix: Incorrect code reformatting for dynamic class constant fetch [WI-74817]
  • Fix: No error highlight after code reformatting when you try to fetch class constant in a wrong way [WI-74809]
  • New: Support `json_validate` function [WI-73720]
  • Fix: docker-compose deploy incorrectly prepares ssh environment [IDEA-308217]
  • Fix: When searching for many usages, main time is spent in ShowUsagesAction.setPopupSize [IDEA-321513]

New in PhpStorm 2023.3 Build 233.11555.19 EAP 6 (Nov 10, 2023)

  • PhpStorm 2023.3 EAP #6 is now available:
  • This build brings a bunch of bug fixes and quality-of-life improvements.
  • Here are the most notable changes and bug fixes in this build:
  • New: GitLab - Creating draft merge request notes [IDEA-318276]
  • Fix: Prettier is converting vue html attributes to single quotes. Only want JavaScript strings to be single quote. [WEB-50619]
  • Fix: Vue3 script setup: no resolve/completion for properties exposed with defineExpose [WEB-56696]
  • New: Enable color preview for color-like values in JSON [WEB-47664]
  • Fix: Mongoose: properties added via module augmentation in d.ts files not resolved [WEB-54904]
  • Fix: Some artifacts are blinks at the top edge of the screen when enter full-screen mode [IDEA-323662]
  • Fix: VCS widget: branch on the widget is displayed truncated sometimes when there is enough space [IDEA-312648]
  • New: Vue 3.3: Support defineSlots [WEB-61142]
  • New: Support Vitest `describe` and `test` advanced extensions: skipIf, runIf, etc. [WEB-58760]
  • Fix: Typescript property completion adds extra dot for partial and for optional parameters [WEB-63103]
  • Fix: Debugger freezes [WEB-53630]
  • Fix: Vitest: test suite is not recognized when using describe with 3 parameters [WEB-58803]
  • New: Support "exports" field of package.json for TypeScript files [WEB-60536]
  • Fix: JSX attribute quotes/braces autocompletion 'based on type' not working in TSX files [WEB-61670]
  • Fix: "Couldn't check commit: check failed" due to uninformative assertion [IDEA-325652]
  • Fix: Navigation bar is absent [IDEA-335693]

New in PhpStorm 2023.3 Build 233.11361.11 EAP 5 (Nov 6, 2023)

  • This build brings a bunch of bug fixes and quality-of-life improvements.
  • Here are the most notable changes and bug fixes in this build:
  • Fix: Don't recognize the eponymous enum method as a constructor [WI-74773]
  • Fix: Show a notification instead of throwing the exception in case docker account not found [WI-74697]
  • Fix: No error highlight when you try to fetch class constant via bool/array/object [WI-74686]
  • Fix: Running PHPUnit tests with Docker Compose interpreter reports wrong status in 2023.3 on Windows [WI-74653]
  • New: [LLM] Support "Explain with AI" feature for Composer console [WI-74522]
  • Fix: No error highlight when you try to fetch class constant via non-string [WI-74461]
  • Fix: Don't add #[Override] attribute when override method from trait [WI-74311]
  • Fix: PHPunit: A lot of empty lines in failed test when use remote interpreter [WI-74268]
  • Fix: #[Override] doesn't have super method: False positive when method marked in trait but using it class also has such method [WI-74119]
  • Fix: #[Override] doesn't have super method: False positive when override abstract method from trait [WI-74114]
  • Fix: Improve UX for configuring quality tools [WI-73621]
  • New: Provide support for the built-in Node.js 18 test runner (node:test) [WEB-56064]
  • New: HTTP Client: ability to convert Postman collections to .http files [IDEA-312760]
  • Fix: Modules referenced using "workspace:" protocol not resolved in Yarn PnP workspaces [WEB-59218]
  • New: Create @Input or @Output from Angular component template [WEB-47886]
  • Fix: Problems tool window, "Project errors" tab: the tree is refreshed in each click [WEB-62636]
  • Fix: Exports not correctly recognized for Vue SFC files with mixed and tags [WEB-53434]
  • Fix: IDEA should be able to start successfully even if the IDE fails to load a plugin on startup due to exception in PluginClassLoader.loadClass [IDEA-323832]
  • Fix: Run Targets: Docker Run Options doesn't accept "--platform" flag [IDEA-291608]
  • Fix: Prettier + Optimize Imports works incorrectly if there's a comment right after imports [WEB-53115]
  • New: Support auto imports with node prefix [WEB-57067]
  • Fix: Can't open Appearance settings when Gradianto theme plugin is installed [IDEA-333689]
  • Fix: Documentation is not rendered in package-info.java [IDEA-236097]

New in PhpStorm 2023.3 Build 233.10527.23 EAP 4 (Oct 23, 2023)

  • Here are the most notable changes and bug fixes in this build:
  • New: Go to data set on failed test [WI-43811]
  • Fix: Select opened file in Remote Host doesn't work if the file in remote host if the target node with the file wasn't expanded before [WI-72971]
  • Fix: Unexpected, funny file encoding in completely blank files [WI-72288]
  • Fix: Pasting a PHPDoc line that includes trailing line break doesn't insert the line break [WI-74545]
  • Fix: VFS doesn't get refreshed on 'Sync with Deployed to' causing File Cache Conflict [WI-68996]
  • New: Show invalid paths in PHP Include [WI-74655]
  • Fix: Property can be promoted: NPE when call QF when constructor calls parent constructor [WI-74621]
  • Fix: Symfony Live Templates should not be suggested where they are not applicable [WI-74571]
  • New: [LLM] Support "Explain with AI" feature for log console [WI-74523]
  • New: [LLM] Support "Explain with AI" feature for PHP tests console [WI-74521]
  • New: [LLM] Support "Explain with AI" feature for PHP scripts [WI-74520]
  • Fix: Switch php runtime libraries support to the workspace model [WI-74253]
  • Fix: Editor tabs: Highlight active / non-focused tab more noticeably [IDEA-295046]
  • Fix: Toolwindow border color shouldn't be equal to editor background color [IDEA-282484]
  • Fix: Legal linear-gradient declaration marked as "Error: Mismatched Parameters" [WEB-43098]
  • Fix: Navigation doesn't work in the import statement between workspaces when using yarn pnp [WEB-60790]
  • Fix: Can't open some projects in 2023.2 due to "Access is allowed from Event Dispatch Thread (EDT) only" error [IDEA-327168]
  • Fix: Type hinting doesn't work for Inferred interfaces or types [WEB-59485]
  • New: Angular Standalone Components: additional inspections [WEB-56235]
  • Fix: Run Configuration. $MODULE_WORKING_DIR$ does not always expand [IDEA-215553]

New in PhpStorm 2023.3 Build 233.9102.195 EAP 2 (Oct 11, 2023)

  • PhpStorm 2023.3 EAP #2 is now available:
  • This build brings a bunch of bug fixes and quality-of-life improvements.
  • Here are the most notable changes and bug fixes in this build:
  • Fix: Support parsing of new call site generic variance from PHPStan [WI-74517]
  • Fix: Code analysis got stuck in specific git project files [WI-73517]
  • Fix: "Use code style based on Prettier for this project" question has no effect [WEB-41888]
  • Fix: Svelte: modules exported from a 'context="module"' script block of the other component not resolved [WEB-54714]
  • Fix: Several problems with IntelliJ plugins page and screen readers [IDEA-202916]
  • Fix: Improve "Cannot connect to already running IDE instance" Exception: Process is still running" detection [IDEA-330531]
  • Fix: org.eclipse.jgit.api.errors.JGitInternalException: Cannot lock /home/user/.config/JetBrains/IntelliJIdea2023.1/settingsSync/.git/index [IDEA-305967]
  • Fix: IntelliJ automatically leaving full screen in tiling WM [IDEA-330605]
  • Fix: Expected actions are missing from search when semantic search is enabled [IDEA-332724]
  • Fix: IllegalArgumentException: Must pass FS root path, but got: 'D:///', which has a parent 'D:' [IDEA-327881]
  • Fix: macOS command-line launcher emits diagnostic output [IDEA-312922]
  • Fix: Angular: Component out of scope inspection on HTML "tr"/"td" tags when using @angular/cdk [WEB-62508]
  • Fix: Classic UI: icons in trees and popups are colored incorrectly on selection [IDEA-332186]

New in PhpStorm 2023.2 Build 232.8660.153 RC (Jul 28, 2023)

  • PhpStorm 2023.2 Release Candidate is now available, and it's the final build before the stable release.
  • The most notable changes and bug fixes in this build include:
  • Support Generics Type in @mixin [WI-69638]
  • Stop projects listening from "Incoming connection from XDebug" window [WI-37367]
  • Editor gutter in new UI: Selection starting point is incorrect when dragging over line numbers to select multiple lines [IDEA-305975]
  • "Update project" fails after updating to 2023.1 [IDEA-317244]
  • Colored header: Implement the ability to restore the default color [IDEA-323773]
  • Rider hangs for about ten seconds sometimes when switching back to the app and typing [WEB-61492]
  • Coloured project-name readability issues with darcula theme [IDEA-323666]
  • NewUI: light / dark variant for the tittle bar per project color [IDEA-323939]
  • Text tab in Search Everywhere: Filter options buttons do not change state on click [IDEA-293482]
  • Breakpoint with condition icon - question mark is misplaced [IDEA-319484]
  • Two IDE windows have the same color [IDEA-320713]
  • Disable colored header in distraction free mode [IDEA-322787]
  • Sometimes completed progresses are not removed from the list [IDEA-324866]
  • Indexing/Code Suggestion is very laggy with vue3 and pnpm [WEB-60672]
  • Vue+spring: code analysis is not completed [WEB-61299]
  • 'Comment with line comment' action adds wrong comment when selecting more lines in section of vue component [WEB-61324]
  • Update and Push buttons: disable update button when update is in progress [IDEA-322400]
  • Gradient toolbar is too bright in themes other than Dark / Light [IDEA-322881]
  • Undefined class: false positive for generic type with restriction declared on function and used on simple variable [WI-73122]
  • Make the disabled icons on the main toolbar transparent instead of solid color [IDEA-323249]
  • Project Widget has a lot of repeating colors [IDEA-323273]
  • Settings sync moves toolbar icons to the header because of DataGrip EAP [IDEA-324063]
  • Svelte: properly parse textarea tag content [WEB-61784]
  • i18n:Fix Chinese translation with missing "#treeend" [IDEA-324386]
  • Add error message when second test framework configuration for the same interpreter and subproject is being created [WI-73333]
  • Rerun of failed tests doesn't work for Codeception in subprojects using remote interpreter and implicit test framework configuration [WI-73350]
  • File .idea/phpunit.xml is removed after refresh oh test frameworks versions and restart of IDE [WI-73353]
  • Moving .png file from the Finder to the Project tree frequently fails [IDEA-324786]
  • "Take heap snapshot" action doesn't work [WEB-61911]
  • Disable sqlite log index backend in 232 release [IDEA-325128]
  • Enable option "Ignore unregistered external connections" option by default [WI-73406]
  • Coverage annotations are not displayed in editor on Windows [WI-73419]
  • Testframework configuration names unexpectedly changed to Main after pressing `Apply` button [WI-73425]

New in PhpStorm 2023.2 Build 232.8660.60 Beta (Jul 23, 2023)

  • Read the blog post to learn about the following updates already available to try in this Beta build:
  • Inspections for PHP assertions
  • Improvements for quality tools

New in PhpStorm 2023.2 Build 232.8453.129 EAP 6 (Jul 6, 2023)

  • Improvements for the generation of PHPDocs
  • A single point of access to all PHP framework plugins
  • Line granularity for Git commits
  • An alternative light theme for the new UI

New in PhpStorm 2023.2 Build 232.8296.18 EAP 5 (Jun 28, 2023)

  • Read the blog post to learn about the following updates already available to try in this EAP build:
  • AI Assistant
  • AI Actions
  • Code documentation
  • Rename suggestions
  • Commit message generation
  • Support @mixin with template

New in PhpStorm 2023.2 Build 232.7754.72 EAP 4 (Jun 19, 2023)

  • Pin Run configurations
  • Sort files by modification time in the Project view

New in PhpStorm 2023.2 Build 232.6734.11 EAP 2 (Jun 7, 2023)

  • Read the blog post to learn about the following updates already available to try in this EAP build:
  • GitLab Merge Requests support

New in PhpStorm 2023.2 Build 232.6095.6 EAP (May 19, 2023)

  • The first PhpStorm 2023.1 EAP build brings the Rename refactoring for generics in PHP and a few more improvements.

New in PhpStorm 2023.1 Build 231.8109.199 (Apr 4, 2023)

  • New UI Beta:
  • We introduced a new UI in the previous release which was disabled by default. In this release, we continue refining the new UI based on both your feedback and our research. See just a few enhancements mentioned below.
  • To enable the new UI, go to Preferences / Settings | Appearance & Behavior | New UI.
  • Compact Mode:
  • Compact Mode enhances the new UI’s user experience on smaller displays. It makes toolbars and tool window headers leaner, reduces spacings and paddings, and makes icons and buttons smaller to help you focus on the code, and not on the controls.
  • To turn on Compact Mode, go to the View menu and select Appearance | Compact Mode.
  • Visible file name pane when tabs are hidden in the new UI:
  • The name of the file that is currently open is now displayed in a pane when editor tabs are hidden.
  • Vertical split for tool windows:
  • This setting in the new UI allows you to divide the tool window’s area into 2 windows and arrange them so that you can see both tool windows at the same time. This is something you could do in the old UI, but was missing in the new version.
  • To add a tool window to this area and place it in the lower part, drag its icon along the side bar and drop it under the separator. Alternatively, you can right-click on the icon and assign the new placement for the tool window using the Move to action.
  • Project tabs in the new UI on macOS:
  • When opening several projects in the same window, macOS users can now easily switch between them using the project tabs displayed under the main toolbar.
  • Redesigned Run widget for the new UI:
  • In response to the feedback we received about the IDE’s new UI, we redesigned the Run widget in the main window header so that its appearance is unobtrusive and easier on the eyes.
  • PHP:
  • Run PHP scratch files on 3v4l.org:
  • PhpStorm 2023.1 natively integrates with 3v4l.org and allows you to run PHP scratch files on any desired PHP version without installing anything on your local machine.
  • Create a new PHP scratch file by pressing Ctrl+Alt+Shift+Insert.
  • Choose your desired PHP version from the drop-down and press the Run button. You’ll see the output of the script next to the editor.
  • If you find 3v4l.org useful, consider supporting its author with a donation here: github.com/sponsors/SjonHortensius.
  • Performance improvements:
  • In this release, we made several significant performance improvements. We will continue this effort in the next updates. Here is what you can expect in this release.
  • Shared indexes for popular PHP packages:
  • Some PHP packages are so popular that it doesn’t make sense to rebuild their index on every PhpStorm instance. Instead, we have already computed indexes for you for many popular PHP packages, like PHPUnit, aws/aws-sdk-php, doctrine/orm, laravel/framework, symfony/*, and others.
  • Now, when you open an indexed PHP project, PhpStorm checks composer.json to see which of the dependencies specified have a prebuilt shared index.
  • PhpStorm may download the index or still rebuild it locally, depending on whether your CPU and RAM are faster than your internet connection.
  • You can also generate your own shared indexes for your private projects. Learn more about how to do that here.
  • Before:
  • After:
  • Go to Class action available during indexing
  • As part of our effort to improve performance, we’re working to ensure that as many actions as possible will be available during indexing.
  • Go to Class (Ctrl+O or Navigate | Class...) is one of the most popular actions for navigating through code. In this release, it is available anytime, even while your index is being rebuilt. Previously, it would display an empty list until indexing was finished.
  • Annotator runs during indexing:
  • Another action that is now available even when the indexing is still in progress is annotating the code.
  • This means that many errors and soft keywords will be highlighted by PhpStorm ahead of time to make your workflow smoother and less time-consuming.
  • Scanning files to index process has become smart:
  • The IDE now opens much quicker because PhpStorm uses the project’s existing caches from the previous session and looks for any new files to index. If no changes are found after scanning, the IDE will be ready to work right away.
  • Faster inspections:
  • We’ve worked to improve the performance of all inspections, especially the heaviest ones. Some of them are now 30–40% faster, whereas for others, the boosted performance is not that drastic, but the combined effect is still noticeable. See the video below for a comparison with the previous versions.
  • Blade templates:
  • We drastically improved the performance of highlighting inside @php...@endphp tags. All keywords and constructs are now highlighted much faster regardless of the code complexity.
  • New IDE suggestion to reconfigure Windows Defender settings for better performance
  • Windows Defender’s real-time protection checks can significantly decrease the IDE’s speed. To avoid this, PhpStorm now suggests adding certain folders to Defender’s list of exclusions.
  • The notification provides the option to either reconfigure these settings automatically, or first check the Defender configuration instructions and then do it manually.
  • Debugger With Data Flow Analysis:
  • Users who prefer Xdebug for debugging PHP applications can now enjoy one more advanced feature, called the Data Flow Analysis (DFA) debugger. It allows you to see branches of code that will never be executed ahead of time, without going step by step with the debugger through the code.
  • PhpStorm shows the precomputed result of the conditions in the inlay to the right before the code is executed. This enables you to get a sense of the situation in the code without digging deeper. Branches that will not be executed will appear grayed out during the debugging session.
  • Turn off DFA during debugging:
  • If you’re not interested in this additional information during debugging, you can right-click on any precomputed value inlay and turn the DFA feature off for the current debugging session.
  • If you’d like to turn off the feature permanently, you can do so under Preferences/Settings | PHP | Debug | Xdebug.
  • Limitations:
  • Currently, PhpStorm does not precompute property values due to technical limitations. This is an area for future development.
  • Support for all PHPStan and Psalm tags:
  • All existing PHPStan and Psalm tags are now parsed correctly in PhpStorm. This makes heavily annotated code more readable.
  • Support for multi-composer and multi-vendor projects:
  • Previously, PhpStorm treated any open project as a single space. However, we see more and more cases when there are multiple applications in the same project, all with their own composer.json dependencies.
  • We implemented a foundation to support these kinds of projects with multiple composer.json files and vendor directories. This brings the following enhancements:
  • Excluded directories are set correctly – this improves overall performance because we run less analyses and inspections. It also makes multi-resolve more stable.
  • PSR roots are detected correctly – refactorings like Move Class work as expected when you drag and drop classes between applications in the project.
  • Missing extensions in composer.json are reported correctly per application.
  • New inspections:
  • Custom Regexp-based search and replace inspections:
  • ou can now use regular expressions to create your own search and replace inspections. These inspections can be especially useful for highlighting style and formatting problems or simple code-related issues.
  • Go to Settings/Preferences | Editor | Inspections and press the + icon. Select Add RegExp Search Inspection (or Replace) from the list, and you’ll be directed to a dialog where you can set up your new inspection.
  • For more advanced inspections that may involve type hierarchy checks, you can use Structural Search and Replace (SSR) inspections. Learn more about them in the docs, or check out the example in the video.
  • Built-in PHP inspections:
  • Every PhpStorm release comes with a bunch of new, ready-to-use inspections. PhpStorm 2023.1 is no exception, so here are a few worth mentioning:
  • Overriding method/extending class marked as @final
  • You can mark classes with the keyword final, producing a fatal error in case of a violation. A gentler approach would be to add the PHPDoc tag @final.
  • In this case, PhpStorm will highlight incorrect inheritance, but the code will not produce an error during execution.
  • Incompatible return types:
  • With a new quick-fix in PhpStorm 2023.1, you can now either add a compatible return type for methods in child classes, or change it if it’s incompatible.
  • Assertion can be replaced with assertTrue/assertFalse.
  • Multiple instances of isset() of nested array access or objects can be replaced with a single one.
  • Add global for variables accessed from other files.
  • Quality-of-life improvements for PHP:
  • Clickable paths and class references for var_dump() / dd() output in the terminal
  • We want to improve the debugging experience for users who prefer the “dump and die” approach. As a first step, we’ve already activated file paths and class references. Clicking on them opens the corresponding file in the editor.
  • Descriptions for file open modes in the completion popup:
  • In the previous PhpStorm release, we added descriptions for different formats in date-time functions.
  • Any functions that accept file modes, now have a detailed description of those in a completion drop-down. You never have to remember what r+, a, and w all mean anymore.
  • More live templates
  • We’ve introduced more live templates, including fun for the function template and fori for indexed loops.
  • User Experience
  • Full IDE zoom
  • It’s now possible to zoom in and out of PhpStorm as a whole, changing the size of all UI elements simultaneously. From the main menu, select View | Appearance and adjust the IDE’s scaling.
  • This could be helpful for demonstrations, livestreams, online meetings, or presentations.
  • Giving these actions unique shortcuts will make it simpler for you to invoke these actions. Go to the Search Actions (Ctrl+Shift+A) window, type “zoom ide”, and assign a shortcut after pressing Alt+Enter.
  • Option to save multiple tool window layouts
  • You can now save and manage several tool window layouts and switch between them when needed. Check the new actions under Window | Layouts to save, update, and activate the layouts.
  • New Remember size for each tool window setting
  • The new Remember size for each tool window checkbox is available in Settings/Preferences | Appearance & Behavior | Tool Windows. It allows you to unify the width of the side tool windows or retain the ability to freely adjust their sizes as you customize your layout.
  • Editor
  • Fill Paragraph for Markdown files
  • Markdown files now support the Fill Paragraph editor action which lets you break up long pieces of text into lines of equal length.
  • To do this, put the caret inside the paragraph you want to change and choose the action from the Edit menu. You can also use Find Action (Ctrl+Shift+A) to look for the Fill Paragraph command and run it.
  • New Smart Keys settings page for Markdown
  • We’ve added a page to Settings/Preferences | Editor | General | Smart Keys where you can set up and change your Markdown preferences.
  • This page should make it easier for you to manage your preferences because it has separate checkboxes for different editor features. Previously, there was only one checkbox in Settings/Preferences | Languages & Frameworks.
  • Option to show whitespaces only in selected code:
  • There’s a new Selection checkbox in Settings/Preferences | Editor | General | Appearance | Show Whitespace that allows you to configure this setting so that the IDE shows whitespaces as small dots only when you select code.
  • VCS / Git / GitHub:
  • VCS status color hints in the Structure tool window
  • In the Structure tool window, we’ve added color hints for changes.
  • This means you can now see which properties, methods, and functions have been changed or added.
  • Improved branches popup:
  • It’s now easier to move between branches because they are stored in lists that can be expanded.
  • Auto-completion in the Create New Branch popup:
  • With PhpStorm 2023.1 EAP #1, we implemented auto-completion in the Create New Branch popup. Once you start typing a name for your new branch, the IDE will suggest relevant prefixes based on the names of existing local branches.
  • Background commit checks:
  • Commit checks for Git and Mercurial are now performed in the background after you commit but before you push. This should speed up the overall commit process.
  • Improved code review workflow for GitHub:
  • Our research found that the most common scenario of using pull requests is when a user goes first to GitHub, and then refers to the IDE in cases where it’s necessary to fully browse the code.
  • To facilitate this workflow, we reworked the Pull Request tool window. It now features a dedicated tab for each pull request you open. The tab instantly displays the list of changed files, but now provides fewer distractions than before. This allows you to focus better on the current task.
  • There’s now also a dedicated button to easily execute the action that’s considered the most important given the pull request’s current state.
  • Docker improvements:
  • Merged log from all Docker-compose containers:
  • The Dashboard tab of the Docker-compose node now pulls together logs from all Docker-compose containers and displays them all in one place. They are also updated in real time.
  • Support for Azure Container Registry:
  • You can now easily connect to the Azure Container Registry. Go to Preferences / Settings | Build, Execution, Deployment | Docker | Docker Registry and set it up by selecting the Docker V2 option in the Registry input field.
  • New setting to apply the :z mount option to bind volumes on SELinux
  • You are now able to add the :z configuration flag to Docker bind mounts, which allows you to connect volumes to Docker containers on SELinux workstations.
  • To enable this function, go to Preferences / Settings | Advanced Settings | Docker.
  • Web
  • Astro support:
  • Long-awaited Astro support has landed in PhpStorm! You can get it through our new Astro plugin, which can be installed from Preferences / Settings | Plugins. The plugin provides basic functionality including syntax highlighting, code completion with automatic imports, refactorings, navigation, correct formatting, and more.
  • Support for TypeScript in Vue templates:
  • We’ve added TypeScript support in Vue templates. It’s enabled when you set the lang attribute in a script tag to ts. Previously, JavaScript was used regardless of the lang attribute in the script tag. PhpStorm will now provide support for inline casting, improved type narrowing, and correct information about inferred types in quick documentation in templates of Vue Single-File Components.
  • Tailwind CSS configuration:
  • In this release, we've added support for configuration options, such as custom class name completion under the classAttributes option, or experimental ones like tailwindCSS.experimental.configFile.
  • You can set up these configuration options under Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS.

New in PhpStorm 2023.1 Build 231.8109.149 RC 2 (Apr 2, 2023)

  • The most notable changes in this build include:
  • Fixed: Using "Copy value as..." in debugger gives: "Cannot get property" [WI-71283]
  • Fixed: Debug: variables are shown twice everywhere with Xdebug 3.2 [WI-71780]
  • Fixed: File Structure View: "Copy" action omits all extended information (parameter, return types, visibility) [WI-62858]
  • Workaround for PHP Toolbox plugin to avoid freezes [WI-71859]
  • Detect test frameworks roots for composer.json in subdirectories [WI-71512]

New in PhpStorm 2023.1 Build 231.8109.108 RC (Mar 24, 2023)

  • Let's take a brief look at some of the most interesting improvements coming in v2023.1:
  • 3v4l.org integration
  • New UI (Beta)
  • Performance improvements
  • Data Flow Analysis in the PHP debugger
  • Custom Reg-exp based inspections
  • Full IDE Zoom
  • Clickable paths and class references for var_dump() / dd() output in the terminal
  • Improvements for Docker support
  • And much more

New in PhpStorm 2023.1 Build 231.8109.51 Beta 2 (Mar 20, 2023)

  • Option to show whitespaces only in selected (highlighted code) [IDEA-94918]
  • Psalm / PhpStan: support parsing for tags with `psalm` / `phpStan` prefix [WI-70674]
  • Psalm / PhpStan: support all unsupported tags in phpDoc [WI-70673]
  • PHPUnit 10 detect tests marked with attribute #[Test] [WI-71455]
  • DFA Debugger: don't show inlays in unreachable conditions [WI-71570]
  • Structure View: show information about inner functions [WI-71098]

New in PhpStorm 2023.1 Build 231.7864.85 Beta (Mar 9, 2023)

  • In this build, you can find additions to the PHP debugger that allow you to see conditional values ahead of time and dim out runtime-unreachable code.

New in PhpStorm 2023.1 Build 231.7515.16 EAP 5 (Mar 2, 2023)

  • The most notable changes since previous EAP build:
  • Jest: run all tests in folder from right-click menu [WEB-41505]
  • Tailwind CSS regex support (custom class name completion contexts) [WEB-48505]
  • Run widget: show all run configurations by default [IDEA-294724]
  • Svelte: support @const tag [WEB-55903]
  • Fixed: Terminal doesn't remember/restore the selected shell in previous session after restart, opens powershell/default shell instead [IDEA-279325]
  • Support files named as compose.yaml or compose.yml as docker-compose file type [IDEA-278058]
  • Fixed: Broken Drupal code style [WI-68784]
  • Fixed: Icons disappearing in custom toolbar controls (Switch task) make Run Widget twitching [IDEA-303860]
  • Run annotator during indexing [WI-70653]
  • PhpUnit: Add resolve of entity references from PhpUnit attribute to entity declaration [WI-71184]
  • PhpUnit: Add completion of methods in string parameter in attribute [WI-71185]
  • PhpUnit Deprecated call inspection: NPE at isSupportedAssertType method [WI-71245]
  • PhpUnit/Test: suggest to install composer packages if user runs PhpUnit run configuration but no PhpUnit/Test configuration exists [WI-71272]
  • PhpUnit Attributes: Own data provider method isn't shown in completion of DataProvider attribute [WI-71257]
  • PHPUnit attributes: Add completion of methods in Depends attribute parameter [WI-71285]
  • PhpUnit attributes: Add completion of class/function in CoversClass/CoversFunction attribute [WI-71286]
  • PhpUnit attributes: Add completion of class/function in UsesClass/UsesFunction attribute [WI-71290]

New in PhpStorm 2023.1 Build 231.6471.15 EAP 3 (Feb 14, 2023)

  • In this build, we've added the ability to create custom Regexp-based inspections, and there is a pack of new, built-in inspections available as well.

New in PhpStorm 2023.1 Build 231.5920.17 EAP 2 (Feb 3, 2023)

  • Scanning files to index in smart mode.
  • A new IDE suggestion to reconfigure Windows Defender settings for better performance.
  • Descriptions for file open modes in the completion popup.
  • A couple of new live templates for PHP.

New in PhpStorm 2023.1 Build 231.4840.331 EAP (Jan 30, 2023)

  • Today we're starting the Early Access Program (EAP) for PhpStorm 2023.1! Join the EAP to try the upcoming features before release, share your feedback, and influence the development of PhpStorm.
  • The first PhpStorm 2023.1 EAP build introduces the following:
  • 3v4l.org integration
  • Full IDE zoom
  • Improvements for Markdown files
  • Enhancements for VCS
  • Downloadable shared indexes for top PHP packages
  • Availability of the Go to Class action during indexing

New in PhpStorm 2022.3 Build 223.7571.212 (Dec 7, 2022)

  • What’s New in PhpStorm 2022.3:
  • PhpStorm 2022.3 is a major update that includes the new UI preview, PHP 8.2 support, Code Vision for PHP, the quick-fix preview, support for ParaTest, the rendered view for PHPDoc, Redis in database tools, and much more.
  • NEW UI:
  • The brand new UI is available for everyone to try. It is turned off by default because it’s still in the Beta/Preview stage.
  • You can switch to the new UI in Settings/Preferences | Appearance & Behavior | New UI Preview.
  • The new UI is cleaner, has fewer distractions, and works faster while allowing you to do most things the way you're used to.
  • USER EXPERIENCE:
  • In this release you will find many additional visual improvements. Here are some of the most notable ones.
  • Code Vision:
  • Right in the editor, next to the PHP code, you can see additional information about PHP symbols: class, trait, interface, method, or function.
  • You'll see usages number – no need to click on a symbol to find it out.
  • For classes and interfaces, you'll see the number of inheritors and implementations, respectively.
  • You'll also get information from Git about who made the most changes to a certain piece of code, allowing you to quickly see who is a code owner and has the most expert knowledge about that part of the code.
  • Quick-fix preview:
  • You can fix some code problems automatically by pressing Alt+Enter.
  • Now you will be able to preview the proposed quick-fix or intention before you apply it and see instantly how your code will be altered.
  • PHPDoc rendered view:
  • You can now change how PHPDoc blocks look in PhpStorm 2022.3 with an option that provides better-looking rendering and support for HTML formatting. This makes reading heavily annotated code more pleasant and easy.
  • To toggle the new rendered view, click on the gutter icon Rendered view gutter icon near any PHPDoc block.
  • To turn on rendering for all PHPDoc comments, right-click on the gutter icon and choose Render All Doc Comments.
  • Improved Quick Documentation:
  • If you press Ctrl+Q on any function, class, or method, PhpStorm will show documentation right in the editor.
  • This popup has been significantly reworked. Now you don’t need to switch to the browser and search for documentation, because everything is right in your IDE.
  • PHP 8.2:
  • PhpStorm 2022.3 comes with full support for PHP 8.2. Most of the changes in the IDE will fit organically into your PhpStorm workflow, so we’ll only mention the new features that you need to know about.
  • Readonly classes:
  • A readonly class is a quick way to declare a class that has only readonly properties. You can use these classes for additional data integrity.
  • For readonly classes, PhpStorm provides:
  • A quick-fix to convert a class with readonly properties to a readonly class.
  • An inspection to make sure that readonly classes can only have readonly children.
  • Detecting redundant readonly properties in readonly classes.
  • Checks for prohibited static and dynamic properties in readonly classes.
  • Deprecated dynamic properties:
  • Accessing non-existent properties in PHP 8.2 will cause a deprecation notice.
  • PhpStorm highlights these usages and provides quick-fixes for the errors, either by adding the property, or by using the #[AllowDynamicProperties] attribute.
  • Typesystem improvements:
  • PHP 8.2 adds support for disjunctive normal form types, as well as standalone null, true, and false types. We’ve added support for all of them in PhpStorm as well.
  • More deprecations:
  • PHP 8.2 introduces a few more deprecations, and PhpStorm has you covered with corresponding inspections to spot them and quick-fixes to update your code.
  • Deprecated ${} string interpolation:
  • If you need to use a variable inside a string, there used to be three possible ways for interpolation. One of them is now marked as deprecated and will be removed in the future.
  • PhpStorm will highlight the occurrences, and you can use an Alt+Enter quick-fix to upgrade the code.
  • Deprecated partially supported callables:
  • Several ways of calling functions have been deprecated in PHP 8.2.
  • PhpStorm highlights invalid code, and you can use an Alt+Enter quick-fix to upgrade your code.
  • PhpStorm can scan your whole codebase at once to detect all possible problems. Go to Code | Analyze Code | Run Inspection by Name. Next, search for “dynamic property”, for example, and PhpStorm will do the rest.
  • DATABASES: REDIS SUPPORT:
  • A preliminary iteration of long-awaited support for Redis has been implemented.
  • DEBUGGING:
  • If you’re having trouble configuring Xdebug, here are a few things you can now do in PhpStorm to identify the problem.
  • Validate phpinfo() output:
  • Add a phpinfo() call to your PHP script or page and copy the output of the function that you see in your browser. Then call Run / Web Server Debug Validation, and you’ll see a dialog that allows you to paste the phpinfo() output from the previous step.
  • PhpStorm will analyze the server configuration and detect most common problems.
  • Check the server configuration with a script
  • If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.
  • Return value debugging with Xdebug:
  • Xdebug 3.2 has an extra “return from function” debugging step that allows you to inspect the return value.
  • PhpStorm 2022.3 supports this new feature. To trigger it, press Step Into when you’re on the last statement in the function. As a result, an additional variable will be shown in Watches.
  • PHP TOOLS INTEGRATION:
  • Run tests in parallel with ParaTest:
  • The long-anticipated support for parallel testing in PhpStorm has finally arrived!
  • To run tests in parallel, you need to check the Use Paratest option in your tests’ Run configuration, and check that the path to the ParaTest binary is set correctly. Usually, if you have ParaTest added in your composer.json, then the path should look something like this: ./vendor/bin/paratest_for_phpstorm.
  • Use external formatters for PHP:
  • It is now possible to choose an external formatter in Preferences | PHP | Quality Tools. You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.
  • Robo integration:
  • A popular task runner for PHP, Robo, received the following extended support:
  • A special tool window, Robo tasks, is available if a Robo class is present in the project.
  • A running configuration for executing Robo tasks is available inside the context menu and invoked from a Robo method.
  • Each public method inside a Robo class has a gutter icon for the respective configurations.
  • Prophecy support:
  • If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.
  • More features for PHP:
  • Datetime format preview:
  • You don’t need to remember or look for date() formats anymore. PhpStorm 2022.3 shows a tooltip with an example date when hovering on a date format string.
  • In addition, when editing a date format string, you’ll get an autocompletion with hints for all characters that are recognized as format parameters.
  • Support iteration over list array shapes:
  • Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.
  • The final piece that was missing is provided in PhpStorm 2022.3 – you’ll get full code completion for array-shape items in loops.
  • New Settings Sync solution:
  • We merged two old synchronization solutions (IDE Settings Sync and Settings Repository) into a single one – the new Settings Sync. It allows you to reliably synchronize settings across different IDEs and machines.
  • If you weren’t using a settings synchronization solution before, but want to try the new one, you can enable it via Settings / Preferences | Settings Sync | Enable Settings Sync.
  • Docker:
  • Docker executable from WSL without Docker Desktop:
  • You can set up this type of connection in Settings / Preferences | Build, Execution, Deployment | Docker.
  • New context action: Pull image:
  • Call up the context actions (Alt-Enter) on the highlighted image name and then select Pull Docker image to pull a required image without running it from Dockerfile, docker-compose.yml, or even from tests using Testcontainers.
  • Support for the .dockerignore file type:
  • Get highlighting and completion in .dockerignore files.
  • Support for the heredoc format in Dockerfile files
  • Use multiline scripts right in your Dockerfiles.
  • Docker connections from Docker Contexts:
  • Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.
  • HTTP Client:
  • Format long requests in HTTP Client:
  • The HTTP Client now provides better formatting options for requests with long URLs. You can also use the Put query parameters on separate lines context action to break the query into smaller fragments on different lines.
  • Pre-request scripts:
  • The HTTP Client now supports script blocks that are executed before requests. You can generate some data before request execution and pass it to the subsequent request using variables.
  • New APIs for JavaScript handlers:
  • PhpStorm now provides the сrypto API, making it capable of computing the md5 or sha1 hash values for an HTTP request.
  • There are now more random functions available, which is convenient for quick API testing.
  • Web Development:
  • New project templates for Next.js and Vite:
  • The New Project wizard available on PhpStorm’s Welcome screen now includes project templates for Vite and Next.js. We’ve also updated the project template for Vue to make sure it follows the latest standards.
  • Code Vision for JavaScript and TypeScript:
  • Code Vision inlay hints now also work for JavaScript and TypeScript. These hints will make it easier to track the usages of various classes, methods, type aliases, and interfaces in your code.
  • vue updates:
  • PhpStorm can now take care of unresolved imports and will offer suggestions for importing Vue components. We’ve also supported the props destructure syntax, improved the behavior of code completion and type checking for Vue library component props, and fixed several Nuxt 3 issues.
  • Vitest support:
  • PhpStorm now supports Vitest, a Vite-native unit test framework! You can run, re-run, and debug your tests in all of the key ways you’d expect, including through gutter icons. Also, watch mode is enabled with the All tests scenario by default. Snapshot testing and coverage are supported in watch mode, too, giving you near-instant feedback on coverage when coding.

New in PhpStorm 2022.3 Build 223.7571.147 RC 2 (Dec 5, 2022)

  • It's the final build before the stable release.
  • Let's take a brief look at some of the most interesting improvements coming in v2022.3:
  • New UI (Preview)
  • PHP 8.2 full support
  • Code Vision for PHP
  • Quick-fix preview
  • Rendered PHPDoc view
  • Running tests in parallel with ParaTest
  • Xdebug setup validation
  • Improvements for Docker
  • A new way to work with WSL2
  • Redis support in Database tools
  • And much more

New in PhpStorm 2022.3 Build 223.7571.15 Beta 2 (Nov 21, 2022)

  • A new way to work with projects in WSL2:
  • PhpStom 2022.3 brings an alternative way to work with projects running in WSL2 file systems. Instead of running a full IDE on Windows, your IDE backend will launch directly in WSL2 itself. Then you connect to it the same way you would connect to any remote machine when using remote development in PhpStorm. This can provide better IDE performance when working with projects in WSL2.
  • Important note on the new Settings Sync plugin:
  • With the PhpStorm 2022.3 EAP, we introduced the new Settings Sync solution, described in detail in this blog post. Here are two more important points about switching to the new solution:
  • If you are using PhpStorm 2022.2.x or earlier with the old Settings Sync plugin and want to enable the new plugin on v2022.3, your settings will be migrated from the older version, but they won’t be synchronized between v2022.2 and v2022.3 afterward.
  • The Settings Repository plugin has been unbundled. If you’re using it, your settings will be migrated when upgrading to v2022.3, but the new Settings Sync plugin won’t be turned on automatically. If you want to keep on using the Settings Repository plugin, you can install it manually from JetBrains Marketplace.

New in PhpStorm 2022.3 Build 223.7401.19 Beta (Nov 14, 2022)

  • Improved Quick Documentation:
  • If you press F1 on any function, class, or method, PhpStorm will show documentation right in the editor.
  • This popup has been significantly reworked. Now you don’t need to switch to the browser and search for documentation, because everything is right above your code.
  • Redis support in Database tools:
  • A preliminary iteration of long-awaited support for Redis has been implemented.
  • You will be able to do the following:
  • Connect to Redis Single Instance (Redis Cluster is not yet supported).
  • Introspect databases and keys, including setting a default key filter for the introspector.
  • Explore database: separate folders for keys of different types for Redis v6.0+, and one folder with all keys for older versions.
  • Execute queries: JDBC driver allows working query execution in most cases.
  • Get coding assistance: highlighting, keyword completion, working resolution for databases and keys.
  • Edit objects: Renaming and deleting keys.
  • View data: with filtering, and JSON highlighting.

New in PhpStorm 2022.3 Build 223.6646.115 EAP 3 (Oct 22, 2022)

  • PhpStorm 2022.3 Early Access #3: Support for PHP 8.2:
  • Readonly classes:
  • We’ve added full support for one of the most anticipated features of the upcoming PHP 8.2 release. There is a quick-fix to convert a class with only readonly properties to a readonly class, but we also added inspections to make sure that readonly classes can only have readonly children, we detect redundant readonly properties in readonly classes, and we made sure that PhpStorm knows about prohibited static and dynamic properties in readonly classes.
  • Deprecated dynamic properties:
  • PhpStorm also knows about deprecated dynamic properties and how to deal with them. We’ll tell you when you’re using dynamic properties, and we’ll provide some quick-fixes to fix the errors: either by adding or renaming the property, or by using the #[AllowDynamicProperties] attribute.
  • Typesystem improvements:
  • PHP 8.2 adds support for disjunctive normal form types, as well as standalone null, true, and false types. We’ve added support for all of them in PhpStorm, as well.
  • New random number generator:
  • PHP 8.2 has a brand-new random number generator. PhpStorm knows about all the newly added classes and can help you work with the new RNG more easily, such as navigating to it, finding its usages, and more.
  • Sensitive parameters:
  • Sensitive parameters can be marked with the #[SensitiveParameter] attribute in PHP 8.2 to make sure that their values are never shown in stack traces. PhpStorm adds support for this attribute as well.
  • Constants in traits:
  • Before PHP 8.2, you weren’t allowed to use constants in traits. Luckily, that has changed, and PhpStorm has full support for it as well, from detecting constants in traits to being able to move them via the refactoring menu.
  • More deprecations:
  • There is an ongoing discussion about whether PHP has to reduce the number of BC breaks and deprecations or not. What do you think?
  • Anyway, PHP 8.2 introduces a couple more deprecations, and PhpStorm has you covered with corresponding inspections to spot them, and quick-fixes to update your code.
  • Deprecated ${ string interpolation
  • If you need to use a variable inside a string, there are two possible ways you can do interpolation: [code example].
  • There was one more way before PHP 8.2, but it is now marked as deprecated and will be removed in the future.
  • PhpStorm will highlight the occurrences, and you can use an Alt+Enter quick-fix to upgrade the code:
  • Deprecated partially supported callables:
  • In PHP 8.2, the following ways of calling functions will be deprecated:

New in PhpStorm 2022.3 Build 223.4884.75 EAP (Oct 6, 2022)

  • The first PhpStorm 2022.3 EAP build introduces the following:
  • New PhpStorm UI preview
  • Full PHP 8.2 support
  • Quick-fix preview
  • Example output tooltip for date formats
  • Enhancements for Psalm / PhpStan
  • Use external formatters for PHP
  • Support iteration over list array shapes
  • Selecting local PHP interpreter for the terminal

New in PhpStorm 2022.2 Build 222.3345.135 (Aug 3, 2022)

  • PhpStorm 2022.2 is a major update that brings support for Mockery and Rector, enhanced support for generics and enums, improvements to our debugger and HTTP client, and more.

New in PhpStorm 2022.2 Build 222.3048.13 EAP 4 (Jun 20, 2022)

  • Highlighting failed test assertions
  • Clickable URLs in PHP, JSON, YAML, and .properties string values
  • Alternative php.ini configuration for individual runtimes
  • Code Completion settings available from the code completion popup
  • New Description field for mnemonic bookmarks

New in PhpStorm 2022.2 Build 222.2680.8 EAP (Jun 2, 2022)

  • New features related to generics
  • Rector support
  • Quality-of-life improvements for working with PHP

New in PhpStorm 2022.1 Build 221.5080.66 EAP 7 (Mar 31, 2022)

  • Inplace Extract Method refactoring
  • Improvements for WordPress
  • More cases covered for generics in PHP

New in PhpStorm 2022.1 Build 221.4906.9 EAP 4 (Mar 14, 2022)

  • Notable changes since EAP #3:
  • Edit template for javadoc stub [IDEA-97658]
  • WebDAV deployment support [WI-1521]
  • Support Corepack installation for yarn/pnpm [WEB-52682]
  • Support for suggested changes in GitHub PR comments [IDEA-241973]
  • Throwable at com.intellij.openapi.wm.impl.ToolWindowManagerImpl.notifyByBalloon [IDEA-288366]
  • Allow to define specific external diff tool depending on mime type [IDEA-69499]
  • Rsync: Support overriding default CLI options [WI-64141]
  • Windows 11 'Snap Layout' does not appear when hovering over maximize button. [IDEA-276887]
  • Should be called at least in the state COMPONENTS_LOADED, the current state is: CONFIGURATION_STORE_INITIALIZED Current violators count: 1 [IDEA-289180]
  • Webpack assistance doesn't work with ESM [WEB-31023]

New in PhpStorm 2022.1 Build 221.4165.156 EAP 2 (Feb 14, 2022)

  • Notable changes since EAP #1:
  • Support object-like arrays [WI-56038]
  • ArrayShape: support multidimensional (nested) arrays [WI-56033]
  • PHPDoc Multiline and nested array shapes [WI-64086]
  • Ability to generate file name of file templates [IDEA-127570]
  • Support OpenSSH config's Include instruction [IDEA-214673]
  • Fixed: Tailwind 2.2+: No code completion in WSL projects [WEB-52237]
  • Get rid of ssh_config parser, use `ssh -G` instead [IDEA-221941]
  • Shortcut for switching editor tabs switches projects tabs on Big Sur [IDEA-261595]
  • Fixed: Tailwind CSS code completion doesn't work if package.json, node_modules, and tailwind.config.js is in a subfolder [WEB-48964]
  • Support page navigation in the Next.js project [WEB-48593]

New in PhpStorm 2022.1 Build 221.3427.92 EAP (Jan 31, 2022)

  • The first PhpStorm 2022.1 EAP build introduces the following:
  • New advanced PHP metadata capabilities
  • Brand-new Notifications tool window
  • Improved Markdown support

New in PhpStorm 2021.3 Build 213.5744.279 (Dec 3, 2021)

  • PhpStorm 2021.3 is a major update that introduces support for the recently released PHP 8.1, better handling of generics in PHP, and enhancements for deployment, HTTP client, and VCS integration.
  • PHP 8.1:
  • A new version of the interpreter has just been released! Check out the video from Brent Roose and community members for an overview of all the new language features.
  • What’s new in PHP 8.1
  • Enums:
  • One of the most highly anticipated features of PHP 8.1 is enums.
  • Support for enums was introduced in PhpStorm 2021.2, offering code suggestions and validation to protect you from using them incorrectly.
  • An enum in PHP contains a set of cases, can have methods, and can be used as a type hint. In all of these cases, PhpStorm provides error highlighting and proper suggestions to save you time.
  • Learn more:
  • Readonly properties:
  • Readonly properties are the properties that cannot be changed after initialization, that is, after a value is assigned to them.
  • PhpStorm 2021.3 will help you make use of readonly properties in your code and make sure they are used correctly.
  • A dedicated inspection will check that a readonly property is initialized only in the same scope where it’s declared, either the property declaration itself or in a class method.
  • Since readonly properties must always be typed, PhpStorm will check if the type declaration is specified.
  • A readonly property cannot have a default value, but you can initialize it in the constructor as a promoted property, so PhpStorm provides a quick-fix for this.
  • `new` operator in initializers
  • In PHP 8.1, you can use new expressions when initializing default parameters’ values, static variables, global constants, and attribute arguments.
  • PhpStorm will verify such usages and highlight invalid cases such as providing a new object as a class constant or property.
  • First-class callables:
  • PHP 8.1 lets you get a reference to any function by means of the first-class callable syntax. Now, instead of writing $fn = Closure::fromCallable('strlen');, you can use a shorter $fn = strlen(...); form, and PhpStorm will provide you with an Alt+Enter quick-fix to convert your code to the new syntax.
  • Pure intersection types:
  • PHP 8.1 brings intersection types, whose value must satisfy multiple type constraints instead of just a single one.
  • PhpStorm will now provide code completion for these constructs and check that an intersection type is not combined with a union type. And if you have an intersection type specified as a PHPDoc annotation, PhpStorm will interpret it correctly, too.
  • New return type: `never:
  • PHP 8.1 introduces a never type for return values. If a function is declared with the never type, then it will not return a value and will either throw an exception or end the script’s execution (just like the die(), exit(), or trigger_error() functions do).
  • Final constants:
  • In PHP 8.1 you can declare final class constants so that they cannot be overridden in child classes, and PhpStorm will verify such cases.
  • Deprecations:
  • In addition to new features, PHP 8.1 brings several deprecations aimed at making the language more consistent and easier to use. PhpStorm will help you locate such deprecated code. Here are a couple of examples:
  • Deprecated usage of Serializable interfaces:
  • Instead of Serializable interfaces, it’s recommended to use the __serialize() and __unserialize() magic methods. In PHP 8.1, you can still use Serializable, but only if the implementing class uses both __serialize() and __unserialize(). PhpStorm 2021.3 highlights incorrect code and offers an Alt+Enter quick-fix for adding the magic methods.
  • Restricted GLOBALS usage
  • Using the $GLOBALS superglobal variable in PHP 8.1 is now restricted – it is not allowed to perform write or read/write operations on the $GLOBALS taken as a whole. PhpStorm will highlight such problematic usages.
  • Generics for PHP:
  • PHP does not provide support for generics on a language level yet, but using them via annotations has already become quite popular. They make code safer and more predictable when working with collections, containers, factories, and other applications. PhpStorm 2021.3 expands the support for generics via the @template annotation.
  • Improved support for Doctrine Collections:
  • PhpStorm brings support for the IteratorAggregate interface and iterating over Doctrine Collections now works out of the box.
  • Support for Laravel collections:
  • In the upcoming Laravel release, the illuminate/collections package will support generics annotations. PhpStorm 2021.3 provides better code completion for such collections.
  • Inferring generic types from constructor:
  • If there is a generic @template parameter in a constructor and you want to specify the type by passing an object as an argument, PhpStorm will now infer the correct type and provide code completion.
  • Refactorings:
  • Move classes via drag and drop:
  • Earlier, to move a class and update its namespace, your only option was to use the move refactoring (F6) in the code editor. In PhpStorm 2021.3, you can use drag and drop in the Project view instead. This way, the project structure would be visible during operation. And what's more, you can move several classes or entire folders using this technique, and PhpStorm will correctly update all the references.
  • Inline function or method:
  • The Inline method refactoring lets you replace the calls to the method with the method’s content and delete the method itself. In PhpStorm 2021.3, the refactoring received multiple improvements and will cover even more cases. For example, non-static methods, method chains, and arrow/anonymous functions passed as parameters are now supported.
  • To use this refactoring, position the caret at a method and press Ctrl+Alt+N. If there is a private method that is used only once in the code, press Alt+Enter and use the new Inline Method quick-fix.
  • Inline variable:
  • The Inline variable refactoring lets you replace the references to a variable with the actual variable’s value. In PhpStorm 2021.3, this refactoring supports inlining NOWDOC/HEREDOC variables and includes several usability enhancements.
  • In addition, PhpStorm will now detect variables with a single usage and provide you with an Inline Variable quick-fix, which you can apply via Alt+Enter.
  • Deployment:
  • Support for rsync:
  • When using an SFTP server for deployment, you can enable rsync for uploading and downloading files and folders, which will significantly increase transfer speeds. The corresponding Use rsync for download/upload option is located in the Advanced section of the deployment server configuration.
  • The path to the rsync executable can be configured under Settings/Preferences | Tools | Rsync. For macOS and Linux, it should be available right away. For Windows, it is recommended to use Cygwin and OpenSSH.
  • Retransmit files that failed to upload:
  • PhpStorm 2021.3 lets you retransmit the files that failed to upload. In such cases, click the Retry link in the File Transfer tool window.
  • Proxy support for SSH connections:
  • You can now specify an HTTP or SOCKS proxy server for your SSH configuration under Settings/Preferences | Tools | SSH Configurations.
  • It’s also possible to use the global IDE-wide proxy. To do this, enable the Use global IDE proxy settings checkbox and provide the proxy details under Settings/Preferences | Appearance & Behavior | System Settings | HTTP Proxy.
  • Quickly switch default server for project:
  • PhpStorm 2021.3 provides a new status bar widget that shows the current default server. When you need to deal with multiple environments, you can switch between them right from there without going to the settings.
  • HTTP Client:
  • Binary responses in the HTTP client:
  • The HTTP client now supports binary responses. If a received response is an image, you will see its preview right in the response console.
  • Output redirection to custom file or directory:
  • The HTTP client can now redirect output to a custom file or directory. It supports two operators for force and soft redirects:
  • The >> operator always creates a new file, adding an -n suffix to a file name if such a file already exists.
  • The >>! operator rewrites the file if it already exists.
  • In addition to providing explicit file paths, you can now use new predefined variables: {{$projectRoot}} points to the project root folder and {{$historyFolder}} points to the requests history folder.
  • Support for HTTP request identifiers:
  • In PhpStorm 2021.3, your HTTP requests can be named! You can provide an identifier as a comment with @name as well as text in the requests separator (###).
  • You can then invoke a request by its name via the Services tool window, from the Run Configuration, Run Anything, or Search Everywhere dialogs.
  • User Experience:
  • New Bookmarks tool window:
  • In PhpStorm 2021.3, the Favorites and Bookmarks functionality has been merged into one – Bookmarks. You can add a bookmark on a specific line, file, or folder by pressing F11. All the added bookmarks will be available in the unified Bookmarks tool window.
  • Source preview for Show Usages:
  • The Show Usages dialog, which you can invoke by Ctrl+clicking a symbol, can now display the source code preview per found usage. To enable the preview, click the Icon of the toolbar button toolbar button.
  • VCS:
  • Align Changes Highlighting:
  • We’ve added the new Align Changes Highlighting option to the Diff screen settings that can be found under the gear icon. This feature makes the Diff easier to read, especially when there are complex modifications, because it aligns the unchanged lines so that they are displayed next to each other. This helps you see the code that has been added or removed more clearly.
  • Checkout and Rebase onto Current for remote branches:
  • The Checkout and Rebase onto Current action lets you check out the selected branch and rebase it on top of a branch that is currently checked out. This was only possible for local branches before, but in PhpStorm 2021.3, this action can be applied to remote branches as well.
  • New ‘Push All up to Here’ action:
  • If you have several commits that are ready to be shipped while others are still work in progress, then you may want to push only the ones you are sure about. PhpStorm 2021.3 will let you push commits up to the one you have selected in the Log tab of the Git tool window. Select the necessary commit, right-click it and use the new Push All up to Here action.
  • Reorganized VCS settings:
  • The Version Control page in Settings/Preferences has been streamlined for better usability and now lists all of the available settings. The Git node is now divided into sections that account for the most important processes: Commit, Push, and Update. A separate node for Directory mappings has been added. Since the background operations are now switched on by default, the Background node has been removed.

New in PhpStorm 2021.3 Build 213.5744.147 RC (Nov 22, 2021)

  • Besides the new features of the upcoming release, which we've covered in detail in the EAP blog posts, this build introduces Remote Development: JetBrains Gateway.
  • With Remote Development, you can connect to a remote machine running an IDE backend and work on a project located there as if it were on your local machine.
  • This feature is still under heavy development and is now in the beta state. See our docs to learn more about it.

New in PhpStorm 2021.3 Build 213.5744.38 Beta (Nov 16, 2021)

  • In this build, you can also perform the Move Class refactoring by dragging files in the Project view!

New in PhpStorm 2021.3 Build 213.4928.13 EAP 4 (Oct 18, 2021)

  • Fixed: Currently active result tab gets removed when attempting to remove others (IDEA-274154 +17)
  • Fixed: git pre-commit hook node module fails executing (WEB-23547 +16)
  • Generics: support by-passing template from @param to @return static (WI-61684 +13)
  • Fixed: Readonly keyword is highlighted later than other keywords (WI-63329)
  • Fixed: Exclude paths on windows are not properly passed to rsync command (WI-63301)
  • New inspection: Forbid autovivification on false values (WI-61886)

New in PhpStorm 2021.3 Build 213.4293.18 EAP 2 (Oct 1, 2021)

  • Added: Support Rsync (WI-473)
  • Added: Macro for Remote SSH External Tools that resolves to the path of the file on the remote server (WI-6720)
  • Added: Ability to quickly switch default server within one project (WI-4193)
  • Fixed: Missing type checking for props (WEB-52130)
  • HTTP Client: Added possibility to name requests (to quickly run them trhough Run anything) (IDEA-235341)
  • Fixed: Generics in PHPDoc return types do not work when used across multiple files. (WI-62487)
  • Added: Support PHP_VERSION and PHP_VERSION_ID values for Language Level inspections (WI-60325)
  • New inspection: redundant intersection type (WI-61929)
  • New inspection: replace inline comment before function call with named argument (WI-62817)