News

PhpStorm 2018.2.3 is released

PhpStorm 2018.2.3 build 182.4323.68 is now available! You can download it here or in JetBrains Toolbox App. If you have installed the previous PhpStorm 2018.2 or PhpStorm 2018.2.3 EAP build, invoke the Check for updates action to receive the latest update.

This build delivers new features, bug fixes and improvements for PHP and the Web, and takes on the latest enhancements in IntelliJ Platform.

PHP 7.3 Support

The first release candidate of PHP 7.3 is already released. The GA of the new version of the PHP interpreter is expected somewhere in mid-December.

PhpStorm is continuing to add support for new PHP features (WI-42883).

Support for list reference assignment

list_reference_assignment

PHP 7.3 introduces the enhancement for list() construction, which allows using references:

   $array = [1, 2];
   list($a, &$b) = $array;

// Would be equivalent to the following:

    $array = [1, 2];
    $a = $array[0];
    $b =& $array[1];

You may use the short syntax [] as well:

   $array = [1, 2];
   [$a, &$b] = $array;

Support for literals as the first operand of instanceof

instanceof_literal_first_operand

In PHP <7.3 this would cause the “instanceof expects an object instance, constant given” fatal error. In PHP 7.3, the result is always false.

Trailing comma in function calls

For a long time in PHP you could add a trailing comma in an array:

   $array = [
        'foo',
        'bar',
        'baz',
        'qux',
    ];

In PHP 7.3 it is possible to do same thing for function arguments list:

    var_dump(
        $foo,
        $bar,
        $baz,
        $qux,
    );

This works for method calls and closures as well:

    $foo = new Foo(
      'constructor',
      'bar',
    );
 
    $foo->bar(
      'method',
      'bar',
    );

This is especially handy when viewing diffs with every parameter located on a new line.

Note that this only works for function calls, but not function definitions, so the following is not possible:

   // Parse error
    function bar($a, $b,) {
        //
    }

Quick-fix for adding a missing extension to composer.json

In PhpStorm 2018.2 we’ve added the new Extension is missing in composer.json  inspection. It detects the usages of functions, constants, and classes that rely on PHP extensions not currently listed in composer.json.

Now, starting from 2018.2.3, you’ll be able to run a quick-fix for such issues: PhpStorm will add the corresponding extension record to composer.json for you.

extension_missing_quick_fix

DQL Support

We plan to fully support Doctrine Query Language (DQL) (WI-9948) in the upcoming PhpStorm 2018.3 major release. You may check out initial support in 2018.3 EAP. Meanwhile, in this release, injections of SQL inside text literals will be automatically disabled for strings with DQL identifiers. This will eliminate false positives and make your files clean from warnings.

Notable bug fixes and features worth mentioning:

  • Fixed: LoginToGithub dialog invoked from CloneRepository dialog hides immediately (IDEA-192530)
  • Fixed: Vue.j SFC not resolving @ alias with @vue/cli 3 if vue is installed in a subfolder (WEB-32564)
  • More options creating Angular Cli project (WEB-27290)
  • Fixed: Cannot attach to remote nodejs after upgrade to 2018.2 (WEB-34537)

See the full list of bug-fixes and improvements in the release notes.


Download PhpStorm 2018.2.3 or click Update in your JetBrains Toolbox App and please do report any bugs and feature request to our Issue Tracker.

Your JetBrains PhpStorm Team
The Drive to Develop

image description