Lightning-Smart and Powerful IDE for PHP Programming by JetBrains

PhpStorm for Mac

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe
Download PhpStorm 2022.2

  -  565 MB  -  Trial

What's new in this version:

PhpStorm 2022.2
Here are the noteworthy updates in this build:
- Fixed: Unable to type in Services -> Docker -> container -> Terminal window with Docker 4.10.1
- Fixed: Find in Files and Replace in File window does not stay open in linux
- Fixed: Noticeable UI lockups in Blade file while deleting code inside @if structures


PhpStorm 2022.1.4
Fixed:
- External diff tools settings being lost after IDE restart
- High CPU usage during AsciiDoc editing
- Permanently disabled Run Git Hooks checkbox
- a crash on Mac OS High Sierra with version 2022.1.3


PhpStorm 2022.1.2
- Double Shift on terminal focus:
- We fixed an issue where using double shift for Search Everywhere didn’t work when the terminal window was in focus

Keyboard navigation in the Create New Class dialog:
- When creating a new class, an issue was making it impossible to use the keyboard to navigate between the fields in the dialog. This bug has been fixed.

Backspace with multiline editing:
- There was an issue with multiline editing where pressing Backspace only had an effect on the first line in multiline selections. This behavior now works properly again.

Git diff from the commit panel:
- In some cases, clicking a commit in the commit panel didn’t show the proper Git diff, but instead just opened the file. This has been fixed.

Destructor return types:
- The IDE was offering a suggestion to add a return type to destructors, which isn’t allowed in PHP. This suggestion has been removed.

Pasting in blade files:
- We fixed some cases where you weren’t able to paste text in Blade files

Tailwind autocompletion:
- Autocompletion for Tailwind was not working properly in some cases, this has been fixed
- Improved TypeScript support

We’ve added support for several new TypeScript 4.7 features:
- Conditional types
- typeof on #private fields
- Optional variance annotations for type parameters

Closing or minimizing PhpStorm when interacting with UML diagrams:
- On some occasions, you weren’t able to close or minimize PhpStorm when interacting with UML diagrams. This has been fixed.

@phpstan-import-type and @phpstan-type fixes:
- We fixed an error where a type imported by @phpstan-import-type wasn’t being properly recognised when used in @phpstan-type

@psalm-type in return tag of closure:
- PhpStorm wasn’t able to recognize @psalm-type types as the return types of closures. This has been fixed.


PhpStorm 2022.1.1
Improved blade formatting (WI-37087):
- The @case and @break directives within a @switch directive weren’t properly formatted by PhpStorm. That’s now fixed.

Default property visibility (WI-50274):
- PhpStorm allows you to define the default property visibility in Settings / Preferences | Editor | Code Style | PHP | Properties Default Visibility. However, when automatically generating a property via the constructor, PhpStorm didn’t set the correct visibility. That’s now fixed.

Vite support (WEB-46507):
- We now support Vite, the “Next Generation Front End Tooling“!

Rename dynamic fields (WI-65177, WI-65840):
- PhpStorm wasn’t able to correctly use rename refactoring combined with dynamic properties. That’s been fixed.

Multiline array formatting (WI-61938, WI-65831):
- We’ve made some improvements to how multiline arrays are auto formatted by PhpStorm

Twig simultaneous delimeter’s editing (WI-65400):
- When changing a delimiter in a Twig file, PhpStorm will automatically change its corresponding opening and closing delimiter as well. However, this behavior didn’t work when the expression contained a string (which happens often). This now works properly.

Wrong visibility when changing visibility during inheritance (WI-65245):
- PHP allows you to change the visibility of any method or property to a less strict one during inheritance. PhpStorm however didn’t detect these changes in some cases when working with abstract classes.

Fix index error in Magento projects (WI-65276):
- PhpStorm 2022.1 had an issue with broken indices in some Magento projects, causing a Null Pointer Exception after indexing those projects. That’s fixed now.

List type in multiline array shapes (WI-65260):
- PhpStorm 2022.1 added support for multiline array shapes. However, there were still some edge cases where the list notation wasn’t recognised by PhpStorm as a valid type. The list type, by the way, represents continuous, integer-indexed arrays. In other words: values where the array_is_list function returns true.

Fixes to psalm-import-type (WI-65312):
- PhpStorm supports type aliases in doc blocks that you can import and use in other places. However, we didn’t properly detect the use of @psalm-import-type in some cases. That’s now fixed.

False-positive inspections (WI-65988, WI-49455, WI-65879):
- Some inspections marked code with a warning when they shouldn’t. Several similar issues have been fixed

Xdebug “Cannot get property” bugfix (WI-65974):
- Our Xdebug integration had some issues not being about to show property information in several cases. Those problems are fixed now.

Array shapes with single quoted keys (WI-65872):
- Array shapes weren’t properly detected when using single quoted strings as array keys, that’s fixed now
- False-positive warnings about type mismatch for arrays with multiple element types (WI-57903):
- Docblocks that listed arrays with multiple types weren’t interpreted correctly, causing a bunch of warnings about type mismatches between docblocks and PHP types. These problems are now fixed.

FTP sync errors (WI-66158, WI-65678):
- PhpStorm 2022.1 had some issues when trying to use FTP to sync code between a server and your local development environment. Those issues are now fixed.
- Rsync errors on Windows (WI-66118)
- PhpStorm 2022.1 introduced some issues with Rsync on Windows where some files would end up using the wrong paths or where an error would occur when syncing. These problems are now fixed.


PhpStorm 2022.1
Frameworks and languages:
- Improved support for autocompletion in Blade templates
- Improved Twig support
- Improvements to our WordPress support
- Vue improvements

PHP:
- In-place extract method refactoring
- Numerous new inspections

Static analysis:
- Multiline and nested array shapes
- Better psalm and generic annotation support
- New advanced PHP metadata capabilities

IDE:
- Several Markdown editor improvements
- New Notifications tool window
- Updates to the HTTP client
- Improvements to VCS integration
- Improved Docker interface
- Updated structural search and replace
- Evenly split tabs
- Hidden tab labels in debugger
- Code reformatting in LightEdit mode
- New composer project wizard
- Remote development updates
- WebDAV support
- Improved rsync support


PhpStorm 2021.3.3
Added:
- Ability to generate file name of file templates
- Shortcut for switching editor tabs switches projects tabs on Big Sur

Fixed:
- IDE freezes and hangs when indexing WSL projects
- PuTTY SSH keys (.ppk) support
- Code style formating for php “Chained method calls” -> “Place ‘;’ on new line” does not work correctly when assigning to variable
- Xdebug: “Cannot get property” (since PHP 8.1)
- No type inference on instanceof === false
- Rename of a promoted property does not change parameter name in another file


PhpStorm 2021.3.2
Fixed:
- [IDEA-286810] CMD+N shortcut doesn’t open generate dialog after File->New was invoked (MacOS)
- [WEB-53199] No props values completion from string union types in MUI material components
- [WEB-53966] Stylus: values of CSS properties not available in completion
- [IDEA-285766] Git branches popup duplicates branch
- [WEB-54448] Unexpected completion auto-popup on typing ‘[‘ or ‘;’ in PHP file (Laravel Jetstream)
- [WI-65005] Cannot determine tool version PHP CS Fixer 3.5.0
- [WI-64598] get_called_class() marked as deprecated


PhpStorm 2021.3
Full support for PHP 8.1:
Enums:
- Readonly properties
- Intersection types
- New return type: `never`
- Final constants
- `new` operator in initializers
- First-class callables
- Deprecations

Generics in PHP:
- Improved support for Doctrine Collections
- Support for future Laravel 9 collections
- Infer generic types from constructor
- Support for the phpstan-* annotation for templates

Improved refactorings:
- Drag and drop support for the Move Class refactoring
- Inline function or method
- Inline variable
- Introduce (extract) variable
- Remote Development:;
- Faster and better deployment:
- Support for `rsync`
- Retry for failed uploads
- Speedup for SFTP/FTP/FTPS with multithreaded connection
- Upload all opened files
- Quickly switch default server for project
- Proxy support for SSH connections

HTTP Client:
- Support for text streams and JSON streams
- Binary responses
- Output redirection to custom file or directory
- Support for HTTP request identifiers

UI Updates:
- New Bookmarks tool window
- Source preview for Show Usages
- Improved Markdown support

VCS:
- Align diff highlighting
- Checkout and Rebase onto Current for remote branches
- Reorganized VCS settings
- New ‘Push All up to Here’ action


PhpStorm 2021.2.3
Fixed:
- Updating indexes on every startup if IDE was closed with OS shutdown
- Find in Path: “File mask” list is empty
- Analyse code on commit is very slow with PHPStan/Psalm enabled
- Quality Tools are run on Commit | Analyze Code despite that the inspection profile has them disabled
- Complete Current Statement for Closures/anonymous functions doesn’t add a semicolon


PhpStorm 2021.2.1
Notable updates in this release:
- Fixed: Re-arrange did not reorder the method with modifiers and name both
- Fixed: CSS class completion doesn’t work great with Tailwind 2.1 in “jit” mode
- Vue 3: Support new


PhpStorm 2021.2
Here are the main highlights of the release:
PHP:
- Basic support for generics in PHP
- PHP 8.1 Enums
- One-line array shapes
- New inspections and quick-fixes
- Refactoring opportunities inspections
- Formatter improvements
- Reworked Extract Method refactoring

IDE:
- Actions on save
- New Terminal options
- Run tests before commit
- Browser pages reload on save
- Automatic clean-up of caches and log directories
- Advanced settings

Version Control:
- Unified Show Diff behavior
- Text search in Local History revisions
- GPG Signatures

Code With Me:
- Screen sharing


PhpStorm 2021.1.4
Fixed:
- “Stretch to Right”/”Stretch to Left”: Ctrl+Shift+Arrow keys resize the dialog instead of text selection
- jpg, svg images aren’t rendered in quick doc
- “git => compare branch” looses focus before list of branches can be displayed
- IDE resets Windows File Explorer Recent Files list on start
- Plugins settings page steals the focus from search box
- IDE with Projector crashes on restart
- No longer possible to set temporary configurations limit
- Open in new window keybinding does not work in recent files view
- Bad completion for table aliases in INSERT
- Back button in Settings may open unexpected page


PhpStorm 2021.1.3
- Updated the bundled webpack schema
- Support row security policies
- Custom rulesets for PHPCS Fixer can have any name ending with .php_cs
- Autoconfigure PHPCS Fixer 3.0

Fixed:
- Services tab with docker compose eats up a lot of CPU
- Editor color scheme keeps getting switched to Darcula
- Tab and Indent settings refuse to save
- Undocked Git tool window keeps shrinking
- Memory leak in Docker Container Log Window on OS X Big Sur with Docker 3.3.0


PhpStorm 2021.1.2
- Support new component options syntax in vue-class-component v8
- Drag and Drop to remote host doesn’t work from “scoped” project window


PhpStorm 2021.1.1
Fixed:
- Find in files not finding occurrences
- Extract Angular component refactoring
- Data sharing options screen unnecessary, appears repeatedly
- Project View tool window gets wider after each open/close cycle
- Press-release-hold Alt doesn’t show tool window tabs
- “Open in terminal” is always opening root instead of the project file directory
- Indexing/Search sometimes prefers a bad match compared with an exact one
- Modal alert boxes in Macos Big Sur are bright white even on a dark theme
- Smart keys setting “Replace unnecessary double quotes on paste” replaces necessary double quotes in Doctrine annotations
- Wrong refactoring ‘Invert ‘if’ statement’


PhpStorm 2020.3.3
Fixed:
- Unnecessary backslash escape in triple-backticked bash block
- OSX Keychain is not available on Apple ARM chips (aarch64)
- Diff view detects big diff but change was only small
- Close All But Pinned
- Branch list doesn’t focus item on right click
- MacOS slow and high CPU usage


PhpStorm 2020.3.2
Fixed:
- Shortcuts with “Shift” modifier do not work with national layouts in 2020.3.1
- Adding a new JSX tag causes simultaneous editing of non-related closing tag
- Vue: support type inference for component props within template
- TailwindCSS completion/css-preview on hover doesn’t work when using breakpoint prefixes with utilities


PhpStorm 2020.3
- PHP 8: support for all language features, and even open-source Custom Attributes
- PHPStan and Psalm can detect issues directly in the code editor or in batch mode
- Xdebug 3 with streamlined configuration, and Debugger Improvements such as inline watches and interactive hints
- HTTP Client can now run Guzzle requests and copy requests as cURL
- Collaborative Development lets you share your project with others and work on it together in real-time
- In the Editor, you can now render diagrams and charts with Mermaid.js, split tabs easier, and instantly preview files without opening them
- All sorts of IDE enhancements: Search Everywhere got some new moves. IDE visual theme stays in sync with the OS. Setting PhpStorm as a default application for opening files
- Git stage is now supported as an alternative to changelists
- Database Tools bring support for SQL for MongoDB and new data extractors
- Tailwind CSS, with coding assistance for Tailwind classes


PhpStorm 2020.2.4
Fixed:
- “Find” and “Replace” don’t remember text area size
- Big Sur: Opening project in new window results in opening project in another tab
- CodeSniffer gets temporary filename instead of real
- No tests executed when running PHPUnit tests with WSL interpreter
- Pull-dialog suggests pulling from the last entered branch, instead from tracked branch
- New git repositories do not show up in VCS dialog


PhpStorm 2020.2.3
Fixed:
- CodeSniffer gets temporary filename instead of real
- SSH-Configuration not saved to the Development Settings
- Wrong item is focused in the Project View with “Always Select Open File” enabled
- Search everywhere popup opens partially offscreen
- ‘Enter’ on a module source or content root opens Project Structure dialog

New:
- Docker. Support –init command line option
- Remember selected options in Git Pull Dialog


PhpStorm 2020.2.2
- Fixed: No tests executed when running PHPUnit tests with WSL interpreter
- Fixed: Exception is thrown on editing code and warnings are stuck
- For remotes with github.com GitHub account now used and login is not requested
- DB connection configuration dialog takes into account ssh tunnel
- Fixed: File Watcher Not Running Properly for Sass @Use/@Forward
- Custom inspection severities are now rendered correctly
- Fixed: Auto-completion for double underscore functions
- Fixed: Loading composer packages update availability runs forever with private repositories
- Extract class refactoring now makes properties typed for PHP >


PhpStorm 2020.2.1
- New inspection: missing parameter type
- Fixed: Don’t consider variables as undefined based on DFA reachability
- Fixed: Method argument is not highlighted when cursor is on a variable in the method body
- Fixed: Trait collision false positive in case of usage of insteadof conflict resolution (PHP >= 7.3)
- Fixed: Unused import false positive when using parent FQCN as child class namespace
- Fixed: Missing return type declaration quick-fix adds the return type before ‘use’ in closures
- Fixed: “Extract class” refactoring messes up return types of fluent methods
- Don’t suggest to change standalone void to standalone null when void is used in wrong context


PhpStorm 2020.2
- Change log not available for this version


PhpStorm 2020.1.3
- Change log not available for this version


PhpStorm 2020.1.2
WSL 2 Support:
- WSL 2 is a new version of the Windows Subsystem for Linux architecture that allows Windows to run Linux binaries. PhpStorm has supported WSL 1 since v2019.3, and now it supports WSL 2 as well
- You can run PhpStorm on a Windows machine and target Linux environments without any hassle
- To get started, make sure you have enabled WSL on your Windows 10 version 2004 machine, and also make sure you have the Linux distribution of your choice installed. See the installation guide.
- After installing PHP in your WSL environment, you’re ready to set up PhpStorm. Add a CLI interpreter under File | Settings | Languages & Frameworks | PHP
- Once this is done, you can use the specified interpreter to run and debug any scripts and to execute Composer commands, PHPUnit tests, and quality tools
- One thing that’s still missing is support for Docker via WSL 2

Other notable changes:
- Fixed: Idea freezes with AppleSystemUIFont when Event Log is opened (MultilineTreeCellRenderer takes a lot of time doing stringWidth)
- CSS/SCSS formatter need is now aware of CSS3 grid-layout properties
- Fixed: Some text in “IDE and Plugin Updates” popups in dark themes is gloom
- Fixed: Wrong project name and path when opening project with shell script
- Fixed: Scanning node_modules directory with many files freezes IDE on project open
- Fixed: Next/Previous occurrence actions don’t work when Find Usages is open and the focus is in the editor
- Navigate to File now honors the Sources directories first
- Fixed: High CPU usage on editing
- Fixed: Incorrect inspection for trait collision for PHP > 7.3
- Fixed: Memory leak / code analysis never finishes for a certain project
- Fixed: Fail to parse validation script output on reload php info for vagrant remote interpreter


PhpStorm 2020.1.1
Fixed:
- Find Usages does not prompt when method overrides/implements base method
- Can’t validate PHP XDebug >= 2.9 configuration
- Command Line Tools fails on PHP 7.4
- Broken update artisan commands for Tools based on Symfony console
- Matching braces highlighting is incorrect
- a pair of issues involving external tools

- Color customization for @param tag (WI-50427 +4) – the last missing part to disable PHPDoc highlighting if you didn’t like it
- We started to roll out the WSL 2 support (WI-51942), so if you are a Windows user, we’d be happy to hear your feedback


PhpStorm 2020.1
Out-of-the-box composer.json support:
- All dependency management actions are now available directly as you edit the composer.json file
- You can create a new file composer.json from the context menu or by pressing Ctrl(⌘)+N. The template of this file can be found in Preferences/Settings | Editor | File and Code Templates.

Add package as a dependency:
- To add a dependency, simply start typing a vendor and a package name, and PhpStorm will suggest appropriate options
- The version field will offer the available versions of this package. For now, you’ll have to add caret or other symbols for the version range manually, but in the next releases, we will implement this too.
- Autocompletion will also work if you need to specify the required version of PHP and extensions.
- In the popup for packages, you can find information from packagist.org about the number of downloads and stars. All the information about packages and their versions is taken from packagist.org and cached.

Install and update packages:
- If there is no composer.lock file and no packages are installed, PhpStorm will highlight the require and the require-dev section names. You can click the Install button in the toolbar above the editor. Or you can use the intention by pressing Alt(⌥)+Enter and choosing Install packages.
- And if only some of the packages are downloaded, PhpStorm will highlight those that are not yet installed. By pressing Alt(⌥)+Enter over them you can choose Update package or Update all packages.
- Next to the version requirement, the currently installed package version will be indicated in grey.

Navigate to files and folders:
- You probably know that with Ctrl(⌘)+Click or Ctrl(⌘)+B you can go to entity definition or search for usages
- In the composer.json it’ll work too. If you Ctrl(⌘)+Click a package, the corresponding directory will be highlighted in the Project Tree. And if it’s a file, then it will be opened in the editor.
- Ctrl(⌘)+Click or Ctrl(⌘)+B on any link in the composer.json will open it in your browser

Autocompletion in autoload(-dev):
- Autocompletion works for namespaces and folder paths based on information from classes and directory structure of the project
- [email protected]
- Ctrl(⌘)+Click and Ctrl(⌘)+B to navigate to files and folders also works here

Improvements for scripts:
- First of all, navigation to files/folders/methods also works. Secondly, aliases for commands are supported. And third, scripts can be run from the editor by pressing the gutter_play_tr button near the script name.

This automatically creates a Run configuration. It means that you can re-run the script by a shortcut Ctrl(⌃)+R, which is quite convenient for debugging:
Code Quality Tools:
- If there is a FriendsOfPHP/PHP-CS-Fixer in the dev dependencies, PhpStorm will check whether the corresponding inspection is enabled and if the ruleset is set. If not, you can call Alt(⌥)+Enter to fix it:

Improvements to PHP type inference:
- The type inference engine is the core of PhpStorm, and several noticeable changes were made to it

Highlighting redundant @var tags:
- Adding @var tags is a good way to suggest PhpStorm the variable’s type. But since we are constantly improving the type inference, some of such declarations may well be redundant because PhpStorm already knows the type. Such cases will be highlighted and they can be removed using the Alt(⌥)+Enter and “Remove @var” quick-fix.
- Tracking null types is a tough task, and there were places where PhpStorm failed. In 2020.1 PhpStorm knows when a variable can be null and when not. Check these examples.

Code Completion for an initialized array:
- Suppose you have an array with known elements, and later you try to iterate through it. The code completion didn’t work here before, because information about the type was lost. Now in 2020.1 everything works.

Code completion in array_map/filter:
- Now there is completion for array items in the body of the closures passed to array_map() and array_filter()

Code coverage with PCOV and PHPDBG:
- You can get a code coverage report by using Xdebug. But since it is primarily a debugger, it has a significant overhead. To speed up reporting of coverage, you can use lighter tools such as the krakjoe/pcov extension or PHPDBG which is built-in with PHP 5.6+.

Both are now supported in PhpStorm. You need to create a Run configuration for tests and select the desired coverage driver in the settings. And then run tests with coverage report by clicking run_coverage_tr:
- Read more about the differences in coverage reporting between Xdebug, PCOV, and phpdbg in README of PCOV

PHPUnit Toolbox:
- In the recently released PHPUnit 9, many features have been removed or declared obsolete. To speed up migration and prevent errors, we have added lots of inspections and quick-fixes.
- Also, you can now create a new test for a class very quickly by calling Alt(⌥)+Enter on the class declaration and selecting Create New PHP Test.

Metadata:
- Advanced Metadata allows you to provide PhpStorm with additional information about your project and thus improve code completion and inspections. For example, this feature is used in the Symfony plugin and in Laravel IDE Helper.
- A number of improvements for metadata have been added to PhpStorm 2020.1
- The parameter index in override, map, and type directives

Previously, it was possible to adjust the behavior of the first argument of functions using override(), map(), and type(). In PhpStorm 2020.1, you can now specify an arbitrary parameter index:
- If you’re trying to access properties through the magic __get() method, the information about the type is lost. You could use additional @var or @property tags, but that didn’t always work. Now you can specify everything through metadata.

Completion for keys to the objects implementing ArrayAccess:
- Metadata supported ArrayAccess objects, but only suggested the type of values. Now the available keys can also be autocompleted

Custom output points:
- PhpStorm considers functions like die() and exit() or throwing exceptions as terminating execution. But applications may have more complex exit points, for instance, a simple dd() or a trigger_error() with an E_USER_ERROR argument.
- In PhpStorm 2020.1, you can mark any functions as exit points and this will correct the control flow analysis accordingly

Icons for functions with changed behavior via metadata:
- Functions whose behavior was changed using override(), exitPoint(), or expectArguments() will now have an icon in the gutter. Clicking the icon will open the .phpstorm.meta.php file where the behavior was modified.
- You can hide these icons under Preferences/Settings | Editor | General | Gutter Icons

Machine Learning-assisted ranking for code completion:
- Ranking suggestions using machine learning makes it possible to sort the list of suggestions in a more optimal way

How to see ML in action?:
- By default, the ML-assisted ranking is disabled. We don’t want it to take our jobs! To enable it, go to Preferences/Settings | Editor | General | Code Completion and turn on two options: Rank completion suggestions based on Machine Learning and PHP.
- If you enable the option Show position changes in completion popup, then the autocompletion list will show how the order of items has changed
- We plan to prevent AI takeover to continue to work on this feature in the upcoming releases

New inspections:
- A private property can be replaced with a local variable
- The definition of a property will be highlighted if it is used in only one method and is overwritten immediately. In such cases, you can call the “Replace property with local variable” quick-fix with Alt(⌥)+Enter.

Unnecessary property initialization:
- Let’s assume that a private property has a default value in a class, but some other value is immediately assigned to the property in the constructor. In this case, the default value is redundant and only adds noise.
- Unused initializations will be highlighted and can be removed by using the “Remove redundant initializer” quick-fix with Alt(⌥)+Enter
- Change the property type according to the default value in PHP 7.4
- - [email protected]
- Redundant ternary operator:Phpstorm highlights trivial ternary expressions, and you can replace them with simpler ones using the Alt(⌥)+Enter quick-fix
- Using a pass-by-ref may have unexpected consequences, and this is one of the reasons Nikita Popov proposed to Allow explicit call-site pass-by-reference annotation in PHP.
- In the meantime, PhpStorm 2020.1 will highlight parameters that are declared as pass-by-ref but are not used as such. They can be safely removed with a quick-fix with Alt(⌥)+Enter.

The same will work for arrays with a pass-by-ref in foreach loops:
- Removing an unnecessary PHPDoc block that only has type declarations is now easy thanks to a corresponding quick-fix
- Note that by default the inspection is at the Info level, which means that it will not highlight anything. If you want redundant PHPDoc blocks to be highlighted, set the severity level for the Redundant PHPDoc comment inspection to Weak Warning or higher in Preferences/Settings | Editor | Inspections.

Updated “Move method” refactoring:
- Sometimes it makes sense to transfer a method to another class. If this method is used many times throughout the project codebase, PhpStorm can help you.
- Previously, it was necessary first to make the method static, and then to call another action to move a method. In PhpStorm 2020.1, the “Move method” refactoring is redesigned into one atomic action. Unnecessary operations and popups have been removed and everything is done in a single step.
- Put the cursor over the method and press F6 (or Ctrl(⌃)+T, 3). Then select a destination class and you’re done.

PHP Debug in HTTP Client:
- You no longer need to bother with parameters or install the extension in your browser to start debugging. All you need to do is create an HTTP request in an .http file and execute it by running the PHP Debug command, which is available under the Alt(⌥)+Enter menu, or by clicking the play icon gutter_play_tr. As a result, an XDEBUG_SESSION cookie will automatically be added to the request.

And a few more little things for PHP:
- @deprecated elements are displayed as strikethrough in the Structure tree view
- Ctrl(⌘)+F12

Lexer customization for Twig:
- Sometimes you may need to change the tag characters for Twig templates, for example if you are using Angular, which has the same syntax
- You can now do this under Preferences/Settings | Languages & Frameworks | PHP | Twig

IDE:
- Advanced spell checker and grammar corrector
- The Grazie plugin is included in PhpStorm out of the box. It checks your text not only for spelling errors, but for grammar and style errors, too. Grazie supports 16 languages, and all checks are performed locally without sending your data to third parties.
- By default, checks are enabled for text files
- You can also enable Grazie for all string literals, comments, PHPDoc blocks, and commit messages
- For PHP, you can turn Grazie on under Settings/Preferences | Editor | Proofreading | Grammar

LightEdit Mode:
- Sometimes you may need to quickly look through or fix a file. In these cases, opening a whole IDE for a single file seems like overkill, but you still want to make use of highlighting and other helpful features you are used to. That is precisely what LightEdit mode is here for.
- It works like this: if you open a file from the command line or OS context menu and PhpStorm is not running, the file will open in LightEdit. Note, though, that if a full-fledged instance of PhpStorm is active, the file will just open in it.

JetBrains Mono is now the default font:
Zen Mode:
- This mode combines Distraction Free and Fullscreen modes, allowing you to take a deep dive into your code without any distractions
- Enable it under View | Appearance | Enter Zen Mode

Split terminal sessions:
- Instead of opening new tabs and switching between them, you can now split the window and open several sessions in one tab. To do this, select Split Horizontally / Vertically from the context menu.

IntelliJ Light theme:
- The light theme has been updated. It is now unified to look the same on all operating systems, and its name has been changed to IntelliJ Light

Customization of the status bar:
- From the context menu, you can select which information to display on the status bar at the bottom right-hand corner of your IDE window

Configuration:
Unified SSH configuration:
- Previously, you had to reconfigure your SSH connection each time you reused it in the deployment, Remote interpreters, or SSH terminal
- You can now add or edit all SSH connections in a single place under Preferences/Settings | Tools | SSH Configurations and then use them wherever, and as often as, you need them.
- The path to IDE configs has changed;
- Previously, Run Configurations were stored in the .idea folder, which many people add to .gitignore in its entirety (there is a better alternative though). Now you can choose any location to save the Run configuration and share it with your teammates through your VCS. This can be especially convenient when onboarding new employees: pull the project, open it in PhpStorm, and run it with a single click.
- To do this, select the Store as project file option in the Run/Debug configuration dialog, and then click on the gear icon to select the desired path in the project.
- run-configurations_share
- Version Control
- New Commit tool window
- The Commit window is available in non-modal mode and is displayed on the left. This way, it does not keep you from viewing and working on other files while the commit is being prepared. This also allows more information about changes to be displayed on the screen.
- The new Commit tool window is enabled by default for new users but disabled for those who previously had PhpStorm installed.
- You are welcome to activate it with the option Use non-modal commit interface under Preferences / Settings | Version Control | Commit.
- commit_flow
- Improved Git branches workflow
- The current Git branch is specified in the bottom right corner of the IDE window. If you click on it, the window will open the VCS | Git | Branches dialog.
- We’ve added a search bar here. The Refresh button updates the list of remote branches. And we’ve added an indicator for each commit: incoming (blue) or outgoing (green).
- git_branches
- Installing Git from IDE
- When you clone an existing Git repository, PhpStorm will look for the Git executable on your machine, and will offer to download and set it up for you if the IDE can’t locate it.
- Reworked Interactive Rebase workflow
- Git Rebase allows you to rewrite commit history. Now you can quickly get rid of “temporary” commits, correct a message, or rearrange the order of the commits. Of course, you can do all this manually from the terminal, but in PhpStorm you can also see the content of the commit and the diffs.
- To start, you need to select the desired base commit in the commit history. Then select Interactively rebase from here from the context menu.
- git_rebase
- Database Tools
- PhpStorm includes almost all the features of DataGrip out of the box. You can check out What’s new in Database tools for an overview from our colleagues about its new features.


PhpStorm 2019.3.4
- Change log not available for this version


PhpStorm 2019.3.3
- Change log not available for this version


PhpStorm 2019.3.2
- Change log not available for this version


PhpStorm 2019.3.1
- Change log not available for this version


PhpStorm 2019.3
- Change log not available for this version


PhpStorm 2019.2.5
- Fixed: Docker-compose remote interpreter configuration does not show selected service when opened (WI-49002 +17)
- Fixed Next/Previous Method navigation (WI-49463 +8) (WI-49543 +5)


PhpStorm 2019.2.4
Notable changes:
- Implemented Non-destructive “safe write” mode
- Fixed: PhpStorm freezes randomly since 2019.2.2 patch installed
- Fixed: @method self doesn’t work anymore at EAP
- Fixed: Git merge –no-commit still performs a commit if conflicts occur
- Fixed: property inspection switches parent and child class
- Excluding vendor/jetbrains/phpstorm-stubs folder

JBR 11 was updated to 11.0.4+10-b304.77:
- Fixed opening projects on macOS Catalina
- Fixed font rendering in text fields on macOS Catalin


PhpStorm 2019.2
- Change log not available for this version


PhpStorm 2019.1.3
Notable changes:
- Added support for AngularDart
- Fixed: Changes to my Environment Variables in Configurations aren’t saving
- Fixed: Cmd+E/Ctrl+E doesn’t work for iterating recent files after Recent/Recent edited files union
- Fixed: Pressing the down key in the floating navigation bar closing it, but should show siblings in a popup
- Added warning against usage of private fields in Angular Templates
- Fixed: Performance problem with suggestions and completion in project with redux-saga

JBR 8 was updated to v1.8.0_202-release-1483-b58:
- Fixed the issue with the IDE hanging after logging in on macOS
- Fixed the rotation of fonts with embedded bitmaps

Join our mailing list

Stay up to date with latest software releases, news, software discounts, deals and more.

Subscribe