PhpStorm 2018.3.1 is released

PhpStorm 2018.3.1 build 183.4588.67 is now available!

In the first update for the recently released PhpStorm 2018.3, we are happy to bring you new features including support for custom string format functions and improved handling of @internal annotations. The release 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:

add_custom_format_function

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:

add_custom_format_function_example

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.

internal-class-usage

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: Macro multiple $Prompt$ in External Tools (IDEA-129070 +22)
  • Fixed: “Close session” and “Select Next/Previous Tab” no longer works in terminal since latest build (IDEA-200854 +18)
  • Fixed: In anonymous classes 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)
  • Added: Code completion for Vue.js instance methods and properties (WEB-28529 +10)
  • Fixed: Opening Embedded Terminal starts with: “cp: overwrite … ” (IDEA-202523 +8)
  • Fixed: Start ssh session is broken in 183.3795.24 (IDEA-203045 +8)
  • Fixed: Extract Method Refactoring: add parameter’s type if variable’s type is known (WI-15860 +8)
  • Fixed: PHP Array Constants – Expression is not allowed as field default value (WI-37537 +5)

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


Download PhpStorm 2018.3.1 build 183.4588.67 for your platform on the website 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

This entry was posted in Release Announcements and tagged . Bookmark the permalink.
  • John Doe

    Still not fixed ….. Right click context menu has also in this release that terrible violet color….

    https://youtrack.jetbrains.com/issue/IDEA-199525

    • Maxim Kolmakov

      The issue is marked as fixed. Could you please disable all custom plugins (Preferences|Plugins|Installed)? And if this doesn’t help, comment in the issue.

      • John Doe

        There are no custom plugins installed and also no modifications to colors, themes or something like that. It was a fresh installation of 2017.3 and default update to 2017.3.1.

        • Eugene Morozov

          That’s weird. On two my test macOS machines, the issue is fixed on 2018.3.1.
          Thank you for reporting, we’ve let the developer know.

      • Denis Kazimirov

        Yep, bug present for me too in Light theme.

  • Sălăgean Andrei Cristian

    After the 2018.3 release, I have two issues that still haven’t been solved in this release: php code sniffer inspects file types even if those have been unchecked and I’m not sure if it has something to do with you, but this plugin stopped working https://plugins.jetbrains.com/plugin/7489-css-alphabetical-rearranger

    • Eugene Morozov

      > php code sniffer inspects file types even if those have been unchecked

      Is it something we already know about? I mean, maybe there’s an issue/ticket link you got when first reported it? If no, what do you mean by “have been unchecked”? Where?

      > I’m not sure if it has something to do with you, but this plugin stopped working

      It’s possible that our API has changed, but it’s still up to the plugin author to maintain the plugin code.
      Anyways, you can follow this issue to get posted on any news: https://youtrack.jetbrains.com/issue/WEB-34910

  • Max

    Still not able to autoupdate properly. How can this still be an issue?

    • Dmitry Tronin

      Please elaborate. Are you using Toolbox or standalone app? What version are you on exactly? What are you getting when running Help > Check for updates?

      • N.N.

        I think he meant that you can’t just press a button and do an update and instead you need to open a webpage, download and install the new version. Which is very annoying… and which feels like it’s from previous decade.
        For example – Standalone app, 20018.2.6 (build 182.5107.45)

        • countrpt

          Basically, if you miss the update from 2018.2.6 to 2018.3, and then 2018.3.1 comes out, the patcher doesn’t know how to keep going in sequence anymore. It can still keep going within the 2018.2.x series (from 2018.2.5 to 2018.2.6, for example), but doesn’t know that it could patch 2018.2.6 to 2018.3 and then from there up to 2018.3.1. Instead, it makes you go to the website and download the full installer.

          • Eugene Morozov

            You’re totally right, as 2018.2 cannot into chained patches.
            Luckily, 2018.3 can, so it should stop being an issue in the nearest future.

          • Max

            It is an issue for MANY versions now. Patching manually is the hell and floods my limited SSD disk space a lot!

          • Dmitry Tronin

            Starting 2018.3 this would no longer be an issue

          • N.N.

            This is great! Thanks for the feedback)

  • Bartosz

    After the update the Terminal stopped to work. I even tried to restart the system.