Phpstorm 2020.1 Github

Early Access Program

The third of our Early Access Program builds for PhpStorm 2020.1 is now available!
In this blog post, we’ll go through updates for PHPUnit, various additions for PHP including better PHPDoc handling with PHP 7.4, and last but not least, improved Git branches workflow.

The GitHub support was extended and now PhpStorm can perform the entire Pull Request workflow inside the IDE. Starting from searching for PRs, checking all the info, adding comments, viewing the timeline, and everything else up to merging a PR – all without ever leaving your IDE. Downloads PhpStorm to a defined folder and creates a Symlink to the new version. It can also cleanup old PhpStorm versions in file. cmuench/phpstorm-downloader. Bash language support for 2020.1 and earlier. 14 425 634 downloads. For support and donations please visit GitHub PayPal.

If you prefer to watch the updates in video format, you can subscribe to the JetBrains YouTube channel and follow our What’s Coming in PhpStorm 2020.1 Series – Episode 1 is already online!

PHPUnit Toolbox

PHPUnit 9 has just been released, and it has several deprecations and removed functionality. To ease migration, PhpStorm 2020.1 will have tools to help with upgrading to PHPUnit 9 quickly and other improvements as well.

Intention to create PHPUnit tests
If you need to create a test for an existing class that you are working on in the editor, you can now put a cursor over the class name and press Alt+Enter to call a quick-action “Creates new PHP test”.

Deprecated @expectedException
It used to be possible, before PHPUnit 9, to use the annotation tag @expectedException to mark that a test method should throw an exception. Now, there is the expectException() method that should be called inside the method instead.

PhpStorm will highlight the deprecated tag, and provide a quick-fix (Alt+Enter ) “Replace with …” to upgrade the codebase:

The same works for @expectedExceptionCode, @expectedExceptionMessage, @expectedExceptionMessageRegExp.

Upgrade Assert methods
While technically it is possible to do any assertions with just assertTrue(), the more specific assertion methods help improve test readability a lot.

For example, if you need to check if there is a certain key in an array, you could write:
$this->assertTrue(array_key_exists($key, $array));

Or instead, you could write something more descriptive with no additional function calls:
$this->assertArrayHasKey($key, $array);

The good news is that you don’t need to rewrite everything manually, as PhpStorm 2020.1 will convert this for you with a quick-fix (Alt+Enter ):

The same works for assertFalse(array_key_exists ..) -> assertArrayNotHasKey().

Deprecated assertInternalType()
The old assertInternalType() method that ensures a target variable is of some basic type integer, array, and so on is also deprecated in PHPUnit.

PhpStorm 2020.1 will strike through the occurrences of assertInternalType() and provide a quick-fix (Alt+Enter ) to replace it with a proper alternative.

Asserting size
Convert assertEquals(42, count($array1)) to assertSize(42, $array1) and

Phpstorm 2020.1 github free

assertEquals(count($array1), count($array2)) to assertSameSize($array1, $array2) with a quick-fix (Alt+Enter):

Deprecated optional params in assertEquals()
Before PHPUnit 9 assertEquals() had 4 optional parameters. Now optional parameters are replaced with a set of specific methods so you will be able to upgrade with respective quick-fixes (Alt+Enter ).

Inspection to check the order of arguments (expected, actual)
PhpStorm will analyze the code and suggest flipping arguments (Alt+Enter ) if the actual value goes before the expected value.

Other improvements for PHP

Remove PHPDoc with just type annotation
The PHPDoc @param tags that only contain type info can now be removed with a quick-fix (Alt+Enter ) in favor of params’ native type declarations.

The Missing PHPDoc inspection will be tweaked accordingly, too, and it will not suggest adding PHPDoc if the method is already fully typed.

Change type to match the default value for PHP 7.4 typed properties
If a property’s type declaration does not match the default value, PhpStorm will highlight this and will propose to either change the type or make it nullable.

New functions in PHP Live Templates
Apple magic keyboard numeric. Live Templates are essentially code snippets that can help you save and reuse code.

The real power of Live Templates comes when you add dynamics to it. For example, there are special function calls that will work depending on the context of where you are inserting the live template.

In PhpStorm 2020.1, two new functions are available for your convenience: className() and qualifiedClassName().

Option to keep space before PHP arrow function parentheses
If you prefer PHP 7.4’s arrow functions to have space after the fn keyword, you will be able to do so by checking the Arrow function parentheses option under Preferences(Settings) Editor Code Style PHP in Spaces tab.

Improved Git branches workflow

In the bottom right corner of the IDE window, there is a current Git branch specified. If you click on it, you’ll get a popup to access all the branches. Alternatively, you can trigger the popup by calling menu VCS Git Branches.

Firstly, the popup now has an explicit search bar, which simplifies the process of looking for the existing remote and local branches. Previously, a floating search field would appear only when you started typing the name of a branch, which made this functionality difficult to discover.

The other improvement affects the Refresh button: we’ve reworked it so that you can use it to update the existing remote branches.

Lastly, we’ve added incoming (blue) and outgoing (green) commit indicators to the status bar.

This release brings plenty of other exciting features, and we will continue to describe notable changes in subsequent posts. So be sure to follow our updates on Twitter and Facebook!

The full list of changes, including bug-fixes and improvements, is available in the release notes.

  • Important! PhpStorm EAP builds are not fully tested and may be unstable.
  • You can install an EAP build side by side with a stable PhpStorm version to try out the latest features.
  • EAP builds are free to use but expire 30 days after the build date.

Please 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!

Your JetBrains PhpStorm team
The Drive to Develop

The PhpStorm workshop materials will guide you through many of the PhpStorm features and productivity tools. They do not cover every possible option and feature in PhpStorm. Instead, they provide a number of practical exercises to enhance your everyday workflow as a PHP developer.

Here's a 5-minute screencast outlining the Workshop materials:


To complete the workshop materials, you will need PhpStorm 2016.1 or later installed on your system, either the full version or a free trial. Many things will work with earlier versions too, but to do everything in these materials version, 2016.1 or later is recommended.

A git command line will be great to have as well.


PhpStorm Workshop exercises come as a PhpStorm project, in which every file is a new exercise that may contain code and tips to get things done. There are exercises on navigation, editing, inspections, live templates, refactoring, tools like Composer and HTTP client, and other areas.

The workshop is self-paced, meaning you can work your way through exercises on your own, whenever and wherever you want.

Keyboard shortcuts

We'll cover multiple keyboard shortcuts available in PhpStorm. Other IntelliJ IDEA-based IDEs use the same keyboard shortcuts, so if you know how to work with PhpStorm, you'll know how to work with WebStorm, RubyMine, PyCharm, and IntelliJ IDEA, and vice versa. A cheat sheet is available online and is also included in the workshop download.

Phpstorm 2020.1 Github Tutorial

Getting the workshop materials

  1. On the PhpStorm Welcome screen, click New Project.

  2. Select PhpStorm Workshop Project from the list on the left, provide the project location in the Location field, and click Create.

Alternatively, you can manually clone the PhpStorm Workshop repository from GitHub.

Exploring the project

The project contains folders and files including one or more exercises. Most exercises are self-contained, but some build on previous ones.

Phpstorm 2020.1 Activation Code

The project root includes several other files as well:

Phpstorm 2020.1 github download
  • contains additional information about PhpStorm Workshop.

  • PhpStorm Reference Card.pdf is the PhpStorm keymap. The latest version can always be found on the PhpStorm website.

Running Docker

The Workshop project contains a pre-configured Docker environment. Most exercises that are not related to the editor require having Docker containers running.

  1. Install Docker for your operating system.

  2. In PhpStorm, in the Settings/Preferences dialog Ctrl+Alt+S, go to Build, Execution, Deployment Docker and select how to connect to the Docker daemon.

    Depending on your operating system, do the following:

    • Select TCP socket.

    • Set Engine API URL to tcp://localhost:2375.

      In the General section of Docker for Windows settings, enable Expose daemon on tcp://localhost:2375 without TLS.

    • Leave the Certificates folder field empty.

    If you are using Docker Toolbox, use the following configuration options instead:

    • Set Engine API URL to

    • Set Certificates folder to <your_home_directory>.dockermachinemachinesdefault.

    • Select Unix socket.

  3. Open docker-compose.yml in the editor and update the XDEBUG_CONFIG variable with the value depending on your operating system. This is necessary for Web Debugging.

    Use the host.docker.internal value, which refers to the remote host, that is, the machine Docker is running on. It will automatically resolve to the internal address of the host, letting you connect to it from the container.

    The corresponding part of the docker-compose.yml file should look as follows:

    Use the host.docker.internal value, which refers to the remote host, that is, the machine Docker is running on. It will automatically resolve to the internal address of the host, letting you connect to it from the container.

    The corresponding part of the docker-compose.yml file should look as follows:

    Use your local machine’s hostname. To obtain it, execute the hostname command in Terminal.

    The corresponding part of the docker-compose.yml file should look as follows:

  4. In the same docker-compose.yml file, uncomment the appropriate line for the sftp service depending on your operating system. This is necessary for deployment to work correctly.

  5. Click in the editor gutter to start all required Docker containers.

    Alternatively, open the built-in PhpStorm Terminal (Alt+F12) and execute the docker-compose up command.

Feedback and pull requests

If you find an error and know what is wrong, feel free to fix it and send a pull request. If you discover an interesting PhpStorm feature that is not covered, fork our GitHub repository, add your content, and send us a pull request.

Your feedback is welcome via issues on GitHub.

Last modified: 08 March 2021