Early Access Program

PhpStorm 2018.3.1 RC 183.4588.24

Last week we released PhpStorm 2018.3, and today we are ready to give you the first RC build for the upcoming 2018.3.1 update. Please give PhpStorm 2018.3.1 build 183.4588.24 a try and share your feedback with us.

This build delivers new features including support for custom string format functions and improved handling of @internal annotations. It also has some bug fixes and improvements for PHP and the Web, and takes on the latest improvements in IntelliJ Platform.

Support for custom string format functions

In PhpStorm 2018.3, we improved the way sprintf() and printf() functions are handled – their parameters and placeholders under the caret are highlighted. In this update, we are taking another step forward: you can now define your own custom string formatting functions, and PhpStorm will apply appropriate highlighting to them, too.

To add custom formatting functions, go to Settings / Preferences | Languages & Frameworks | PHP | Analysis. There, expand the Custom Format Functions node and add a new item:


You can add both class methods and plain functions, and PhpStorm will provide you with code completion in both cases. Then, specify the index of the argument where your formatting template resides.

That’s it: apply your changes, and your custom formatting function will be included in the analysis:


Improved @internal annotation handling

In this update, we’ve improved the behavior of the Usage of internal entity inspection, which handles @internal annotations.

Previously, marking a class as internal would result in all class usages marked as internal, too.


Now, since @internal commonly denotes elements internal to a package or a library, the inspection takes your actual project structure into account:

  • In a project with no source roots, no @internal class usages will be marked.internal-class-usage-no-src-roots
  • If a source root is configured and the @internal class is located inside it, the usages inside this source root won’t be marked, but usages outside this source root will be marked.internal-class-usage-src-root
  • If the @internal class is located inside a library, all its usages outside libraries will be marked.internal-class-usage-lib
  • In a Test Sources root, no @internal elements’ usages will be marked.internal-class-usage-tests

To learn more about working with content roots, refer to PhpStorm help.

This update also brings notable bug fixes and features worth mentioning:

  • Fixed: iterable doesn’t match C[] and children of Traversable (WI-35347 +28)
  • Fixed: Macro: multiple $Prompt$ in External Tools (IDEA-129070 +22)
  • Fixed: Anonymous class: constructor arguments are treated like anonymous class scope instead of outer scope (WI-34498 +15)
  • Fixed: Unused private method not detected when recursion (WI-17810 +14)
  • Fixed: “Close session” and “Select Next/Previous Tab” no longer works in terminal since latest build (IDEA-200854 +10)
  • Vue.js instance autocompletion (WEB-28529 +10)
  • Allow hiding override/implement left gutter icons (WEB-32824 +9)
  • Extract method: PHP: Extract Method Refactoring: add parameter’s type if variable’s type is known (WI-15860 +8)
  • Fixed: Replace in preselected text doesn’t work any more (IDEA-200011 +7)

See the full list of bug-fixes and improvements list in our issue tracker and the complete release notes.

Download PhpStorm 2018.3.1 RC build 183.4588.24 for your platform here:

Or just click Update in your JetBrains Toolbox App.

We appreciate you reporting any bugs and feature requests to our Issue Tracker.

Your JetBrains PhpStorm Team
The Drive to Develop

image description