Early Access Program

PhpStorm 2020.2 Early Access Program is Now Open

The Early Access Program (EAP) for PhpStorm 2020.2 starts today!

For the upcoming release, we are more focused on improving existing subsystems and stability than adding a lot of new functionality. Nevertheless, there are plenty of exciting features on the way.

PhpStorm 2020.2 EAP

The main highlights of the first EAP build are:

As usual, PhpStorm EAP builds are free to use but expire within 30 days of the build date.

This EAP build is available for download from our website and in the JetBrains Toolbox App. You can also enable the option to have builds delivered automatically to your IDE under Preferences/Settings | Appearance & Behavior | System Settings | Updates.

Download PhpStorm 2020.2 EAP

Full support for GitHub Pull Requests

We introduced initial support for GitHub Pull Requests back in PhpStorm 2018.3. Since then, it has had several enhancements, mostly related to viewing pull requests. Some actions, however, still required you to switch to a browser.

In the upcoming PhpStorm 2020.2, it will be possible to browse, assign, manage, and merge pull requests; view the timeline and in-line comments; add comments and reviews; and accept changes.

The entire Pull Request workflow can now be done in PhpStorm, and there is no longer any need to switch to a browser.

Let’s take a look at how it works.

New layout for the pull requests view

Instead of a horizontal tool window, pull requests are now shown in a vertical one in the top left-hand corner of the screen. This way, more information can be seen at once.

First, the window displays a list of all the available pull requests. When you click on any of them, PhpStorm displays information about it, such as its message, branch names, author, assignee, changed files, commits, timeline, and comments.

github-pull-request_basic

From here, you can start the review process by checking the changed files and commenting on the changes.

Reviews support

The entire review workflow can now be completed inside the IDE. You can start reviews or request them, comment on changes, and submit reviews.

github-pull-request_comment

You can now view, create, edit, or remove both commit-level and line-level comments, which lets you do the code review right from the IDE.

Viewing the results of pre-commit checks in the timeline

During the pull request review process, PhpStorm will display the results of the checks in a dedicated panel at the bottom of the timeline. To resolve issues more quickly, you can use the links provided.

Merging pull requests without leaving the IDE

Previously, it was first necessary to create a local branch from a pull request, and only then was it possible to complete the merge.

Now, this workaround is no longer needed. Everything works right out of the box.

github-pull-request_merge

Brand new Inspections Widget

We’re pleased to introduce our brand new Inspections Widget, which is designed to make it easier to view the problems in the current file and navigate between them.

The Inspections Widget shows the warnings, errors, and other issues in the current file. You can then use the arrow icons to navigate through them.

inspection-widget

It is still possible to use the F2 shortcut to jump to the next issue in a file. Now though, it is also possible to configure whether it should jump to all issues or only to the problems with the highest priority.

inspection-widget_f2

PHP control flow analysis reworked

In PhpStorm 2020.2, we’re starting to redesign the control-flow engine. While this is a huge rework that will take time, you can already see the first results in this EAP build.

The rework of the control-flow engine means that, in certain cases, PhpStorm will understand your code better than before and can help you to find potential problems.

You don’t need to do anything specific to see this feature in action, but you may notice warnings from new inspections here and there. These may require your attention, as they are possible sources of bugs or ambiguity in applications.

Here are a few examples of what PhpStorm 2020.2 will be capable of.

Find when a variable is always true/false

Let’s take Parser.php from doctrine/orm as an example.

control-flow_always-true-doctrine

In this code, the function is set to return some value in the event that the condition evaluates to false. This means that if the execution passes the condition, then the variable is definitely true.

Use Code | Run Inspection by Name and choose Variable is always true/false when reached to find all cases of code like this in the project.

New inspection: Array used only with write access

Let’s consider another example from doctrine/orm: the SchemaTool.php file.

control-flow_array_never_updated

This code includes an array called $pkColumns in the gatherColumns method that is created and updated, but eventually never read. The inspection allows you to remove this array, which will probably make the code cleaner.

New action: Type Info (⌃⇧P / Ctrl+Shift+P)

This new action is available under View | Type Info. It relies on the PhpStorm type inference engine and lets you see the type of any selected expression.

For example, what is the type of the expressions in the following snippet? It might be hard to tell just by looking at the code, while Type Info provides comprehensive insight.

type_info

When coding, you can check the type of expression on the fly by using the shortcut ⌃⇧P / Ctrl+Shift+P, which can noticeably increase productivity.

There are plenty of other places where control flow improvements could come in handy. If you find any quirks or have suggestions, please let us know.


This release has more to offer, and we will cover other notable changes in subsequent posts. So follow our updates on Twitter and Facebook if you don’t want to miss out on any of the new developments.

The full list of tickets resolved in this build is available in the release notes.

You can report any problems you find to our issue tracker, or by commenting on this post. Your feedback is much appreciated, and the most active EAPers will get special, limited-edition gifts from us. That’s right, we have our exclusive PhpStorm elephpant, which we will soon be ready to ship.

Your JetBrains PhpStorm team
The Drive to Develop

image description