PhpStorm 2018.3 released: DQL, PHP 7.3, Multi-host Deployment, PHP CS Fixer, new refactorings, and more

PhpStorm 2018.3 is now available!

PhpStorm 2018.3

This major release brings with it a lot of new powerful features and improvements, including DQL support, PHP CS Fixer, remote deployment to multiple hosts, new intention actions and improved refactorings, support for GitHub Pull Requests and Git submodules, accessibility improvements, and much more!

PHP

Quality Tools

Deployment

Version Control

Web Technologies

  • Auto imports in JavaScript
  • Parameter hints
  • Improved Angular support
  • Vuetify support

IDE

Database Tools

  • Cassandra Support
  • Many improvements in code completion
  • Support for extensions in PostgreSQL
  • Introduce table alias intention
  • Auto-reconnect after time-outs

A complete list of all the changes can be found in the really long release notes.


For more details please see What’s New in PhpStorm 2018.3 and download a free 30-day PhpStorm trial for your operating system.

Download PhpStorm 2018.3

PhpStorm 2018.3 is available as a free update for everyone who has an active subscription for PhpStorm or All Products!

Thank you all for your feedback! We really appreciate your contribution, and we encourage you to continue to share your thoughts and suggestions with us in the discussion forum, issue tracker, Twitter or here in the comments!

JetBrains PhpStorm Team
The Drive to Develop

This entry was posted in General Announcements, Newsletter, Release Announcements and tagged . Bookmark the permalink.
  • https://egor.sh Egor Kokorin

    <3

  • Attila Szerémi

    I still don’t get the difference between intersection types and union types in docblocks.
    I just get offered all methods in both cases.

    https://uploads.disquscdn.com/images/43677ff0abca2be2f0b67bf3d454d11800224100b73a692dee897f9aeb07b972.png https://uploads.disquscdn.com/images/d9bf40717d671d6ee2964cde348e6c54c7a4face2f541ad28ec07ef026aba5d8.png

    • Maxim Kolmakov

      In this version we’ve introduced the basic support (parsing and formatting) but our type system makes indeed no difference yet between intersection and union types.

      • Attila Szerémi

        Oh okay, thanks, it’s all clear to me now!

  • Andreas Urbanczyk

    I can’t import my settings from 2018.2.5. Especially plugins. After import & restart there is simply no change.

    • Maxim Kolmakov

      Could you please contact our support team (Help|Contact Support)? We will need some addition info to debug the problem.

      • Andreas Urbanczyk

        A fresh install (removing all data manually from Library/Application Support and logs etc. did help after all.

  • Matthew Hailwood

    Similar to @attila_szer_mi:disqus I don’t quite get the support for Generics – Take a Laravel snippet for example with it’s collections which are arrayable – The way I understand it if I have

     
        /** @var IlluminateSupportCollection $users */
        $users = getCollectionOfUsersFromSomewhere();
        
        foreach($users as $user) {
            $user->... 
        }
      
    

    Then I’d expect it to know that $users is a Collection instance, and $user is User instance.
    Instead it seems to have no effect so I run the docblock

      
        /** @var IlluminateSupportCollection|AppUser[] $users */
      
    

    Which does work, but I’d love to know how we’re supposed to use the Generics!

    /cc @maximkolmakov:disqus

    • Maxim Kolmakov

      Sorry that we were not clear about “generics” support. We support them only on parser/formatter level for now. So there won’t be any error highlighting and PHPDoc won’t be reformatted in a wrong way.

      Our type system doesn’t indeed support “generics” though but we’re working in this direction.

  • moisesgarcia

    It could have been really cool that us now, the servers can be grouped, the server are grouped in the “Start SSH Session” dialog so when you have a lot of servers you don’t get a very long list of servers. Instead you will get the group of servers and then a submenu with the ones inside

    • Maxim Kolmakov

      Thank you for the detailed feature request! I’ve filed an issue at: https://youtrack.jetbrains.com/issue/WI-44306

      • moisesgarcia

        Also I found another thing. I have like 6 server groups and in each of them I have around 7 servers. In the Settings -> Deployment option, the name of the server groups is not render till I click on them.

  • Robert Pranis

    Hi. I’ve got a problem.
    OS: Fedora 29, x86_64
    The pull/git requests through ssh does not work.
    I found a script ~/.PhpStorm2018.3/system/tmp/intellij-ssh-askpass.sh
    When I launch it I have message:
    INTELLIJ_SSH_ASKPASS_HANDLER environment variable is not defined!
    java.lang.IllegalStateException: INTELLIJ_SSH_ASKPASS_HANDLER environment variable is not defined!
    at org.jetbrains.git4idea.nativessh.GitNativeSshAskPassApp.getNotNull(GitNativeSshAskPassApp.java:47)
    at org.jetbrains.git4idea.nativessh.GitNativeSshAskPassApp.main(GitNativeSshAskPassApp.java:26)
    Previous PhpStorm 2018.2 says:
    Invalid amount of arguments: []
    Maybe it is the reason?
    What should I do now? I don’t have access to our own git repositories.
    Thanks

  • Devo

    Is anyone else having problem connecting to the database?

    “`
    java.lang.ClassNotFoundException: org.jetbrains.dekaf.jdbc.CassandraIntermediateFacade
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at com.intellij.database.remote.jdbc.helpers.JdbcNativeUtil.detectImpl(JdbcNativeUtil.java:97)
    at com.intellij.database.remote.jdbc.helpers.JdbcNativeUtil.detect(JdbcNativeUtil.java:81)
    at com.intellij.database.remote.jdbc.impl.RemoteConnectionImpl.(RemoteConnectionImpl.java:35)
    at com.intellij.database.remote.jdbc.impl.RemoteConnectionImpl.wrap(RemoteConnectionImpl.java:38)
    at com.intellij.database.remote.jdbc.impl.RemoteDriverImpl.connect(RemoteDriverImpl.java:38)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745) (no stack trace).
    “`

  • Ondřej Frei

    Is anyone ever going to fix https://youtrack.jetbrains.com/issue/IDEA-165950? It’s been around for almost two years now, while the JB team simply stopped responding to user complaints (last response 10 months ago).

    • Maxim Kolmakov

      We’re really sorry about the lack of progress and communication about the issue. We’re aware that this is a major pain point and investigation what can be done.

      • Ondřej Frei

        Thank you for a promising reply :)

        • http://www.id8871112.sexylyt.website cindysidebottom

          ondejfrei easy

  • Gazzali fahim

    Does this version work with $_POST[] method?
    The previous version (2018.2.3) didn’t work.

    • Andreas Urbanczyk

      What do you mean exactly?

      • Gazzali fahim

        In PHPStorm 2018.2.3 version or some previous versions, if you pass any value via $_POST[‘someValue’] returns null, meaning that it can’t hold those values.
        It’s a problem with PHPStorm’s built-in web server.

  • https://stackoverflow.com/users/1262820/felipsmartins Felipe Martins

    lol PSR-5 has dropped Generics support for a while: https://github.com/php-fig/fig-standards/pull/1102

  • John Doe

    DEBUGGER UNREADABLE FONT COLOR???? REALY????

    Nodejs debugger has this terrible font color at dark mode. Why?

    Guys, what is going on? Is there any hope, that one day this ide will be with less bugs?????
    I mean look at VSCode. It’s not an ide, but with that onboard functions it works stable and everything is ok. And it is free. And yes, there are no UI bugs or dark colors on dark background.

    Let me guess: Fixing that bug will be pointed to some future version in year 2020?
    Like this one: https://youtrack.jetbrains.com/issue/IDEA-199525

    Guys, that are bugs, not features, which can be planed for future releases.
    We pay for this software and things like this make me frustrated.

    https://uploads.disquscdn.com/images/52e0e74027c345d661fabc8660b04dea2cea083c3d6234af2ec8b9cdc960212e.png

    • Matt

      …… So change it.

      Preferences->Editor->Color Scheme->Console Colors

      It’s not hard, and definitely not a bug when software reflects settings that you control.

  • MrHaroldA

    This update removed native look and feel for GTK/Linux users. This is a big throwback to the 90’s where Java applications looked nothing like all your other applications.

    Is there a way to get the GTK theme back? Could it be implemented as plugin?

  • Eirik

    If you’re also frustrated by the slow speed of the “improved” search dialog, vote up this issue: https://youtrack.jetbrains.com/issue/IDEA-199661

    They stopped showing the results as you’re typing to stop screen flicker. Now there’s a delightful artificial delay between typing and seeing results, making it much more difficult to drill down to the file you want when you don’t know its _precise_ name.

  • azoic

    ssh session doesn’t start

  • mooduino

    What has happened to the Terminal? The history doesn’t work anymore and basically I can’t use it. I’ve had to start using iTerm again.

  • Eugene Morozov

    Well, it seems that you intentionally chose to remove the previous version settings during the installation phase.
    The settings import is being done when the new version first starts, but I totally agree that you may have not known it.
    I’ve filed a usability issue to IDEA: https://youtrack.jetbrains.com/issue/IDEA-203307

  • muran

    php interpreter via docker-compose does not work anymore