PhpStorm 2017.2 Early Access Program is Open

Today we start the Early Access Program for PhpStorm 2017.2 (EAP). A fresh build 172.2103 is available for download here and within the JetBrains Toolbox App.

What is Early Access Program?

Early Access Program (EAP) allows you to try pre-release versions of our software to evaluate features that will be added in the next release. It is important to distinguish EAP from traditional pre-release software. Please note that the quality of EAP versions may at times be far below even usual beta standards. If you are looking for a stable version of PhpStorm, please visit our site.

PhpStorm_201712EAPsplash

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

Docker-compose

If you use Docker Compose, we have good news for you, as PHP interpreter based on Docker Compose is now supported in PhpStorm. Now you don’t have to duplicate all settings, such as volumes, networks, environment variables, etc. from docker-compose.yml inside PhpStorm. Docker Compose based interpreter has all familiar features of remote interpreters. You can run and debug PHP code and execute and debug PHPUnit, Codeception, Behat and PHPSpec tests.

Please note that the feature is not available on Windows yetPY-19251. We are also still working on the support of PHPCS and PHPMD using Docker Compose.
docker-compose

PSR-0/4 root detection from composer.json

PhpStorm is now aware of PSR-0/PSR-4 source roots, and their namespace prefixes declared in autoload section in composer.json. Since composer.json contains the most up-to-date information about project structure, new integration ensures that PhpStorm Source and Test folder exactly match the project structure.

psr-4

Automatic run of PHPUnit tests

In this build, we’ve added a possibility to re-run PHPUnit test automatically with a specified delay. You can enable auto-run for a particular configuration, set delay and tests will be re-run automatically with specified delay after you stop editing a file.

phpunit_rerun

Unified settings for frameworks

In this release, we’re going to simplify PHP settings. As a first step, we’ve moved all settings for frameworks (Joomla, Drupal, and WordPress) to one settings page which can be found in Settings|PHP|Frameworks. The page now contains combined settings with a unified UI. When the framework is disabled, the corresponding section is hidden to see only relevant settings.

frameworks

Field declared dynamically warning for fields assigned in constructor but not declared

PhpStorm now will warn you about fields that have been assigned in __construct but not declared inside a class. That will help you to catch typing errors earlier. The behavior of this inspection is controlled by Notify about dynamic field declaration option in Settings|Editor|Inspections|PHP|Undefined Field.

dynamic_field

Other features worth noting:

  • Find in Path: gutter icons, local change markers, focus
  • Better HiDPI support: per-monitor, auto-adjusted font-sizes
  • Recursive calls detection in Javascript
  • Parameter hints for TypeScript
  • Code rearranging for Javascript

Apart from new features, this build brings many important bug fixes and usability improvements, including these:

  • Default path for New Project from Existing Files is always “/”: WI-8839
  • Array should be acceptable default type for iterable: WI-33726
  • Many fixes for Return type doesn’t match… inspection: WI-32052WI-31609WI-35094WI-33991
  • @method annotation doesn’t support keywords callable, $this, self and static WI-21935

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


Download PhpStorm 2017.2 EAP build 172.2103 for your platform from the project EAP page 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

This entry was posted in Early Access Program, Newsletter. Bookmark the permalink.
  • https://espadav8.co.uk EspadaV8

    There’s an issue with the ‘Go to File’ feature. Pressing the shortcut (Ctrl-P for me) will rarely bring the floating window up. It usually flashes on screen for a split second. Mashing Ctrl-P usually brings it up in the end (see linked YouTube video)

    https://youtu.be/lsygfgrE75g

    • Eugene Morozov

      I could reproduce that neither in Linux nor in OS X (not sure which one you’re using).
      Please submit a support ticket and attach the IDE log after reproduction there: https://intellij-support.jetbrains.com/hc

      • https://espadav8.co.uk EspadaV8

        Sure, I can do that. I’m using Ubuntu 17.04 with GNOME. As is usually the case with trying to reproduce bugs, it now appears to be working. I’ll stay on 2017.2 EAP today and see if it starts happening again. Thanks

  • Steve H

    For anyone else not seeing the new docker compose functionality:

    In order to get the “Docker Compose” option to appear in the “CLI Interpretters”>”+”>”From Docker etc” view I had to disable the “PHP Docker” plugin.

    • Steve H

      However… although I can now see the option to use docker-compose.yml I can’t use it because the “PHP Docker” plugin is disabled :(

    • Eugene Morozov

      What operating system do you use? It should definitely work with the plugin on.

    • ShimmiCZ
    • Maxim Kolmakov

      Sorry, we forgot to mention that Docker Compose is not available for Windows yet. Please vote for https://youtrack.jetbrains.com/issue/PY-19251

  • MilkMan

    There’s an issue with the switcher (Ctrl + Tab). It won’t navigate between the latest files (vertically) but will only select the second file or Favorites (horizontally).

    Reported here: https://youtrack.jetbrains.com/issue/WI-36332

  • http://www.park-manager.com Sebastiaan Stok

    Getting “Read access is allowed from event dispatch thread or inside read-action only (see com.intellij.openapi.application.Application.runReadAction())
    Details: Current thread: Thread[ApplicationImpl pooled thread 4,4,Idea Thread Group] 1197418118
    ; dispatch thread: false; isDispatchThread(): false
    SystemEventQueueThread: Thread[AWT-EventQueue-0 2017.2#PS-172.2103.5 PhpStorm, eap:true, os:Mac OS X 10.12.4, java-version:JetBrains s.r.o 1.8.0_152-release-845-b3,6,main] 1667967959
    java.lang.Throwable”.

    Tried to send a report getting the following error (macOS) https://uploads.disquscdn.com/images/a674200994d381e950fdcbe31f07ac487fd47070246dddd11195f747883dcf5b.png

    And when using the Help search operation menu I’m getting:

    Crashed Thread: 0 AppKit Thread Dispatch queue: com.apple.main-thread

    Exception Type: EXC_BAD_ACCESS (SIGABRT)
    Exception Codes: KERN_INVALID_ADDRESS at 0x00007f854dc78968
    Exception Note: EXC_CORPSE_NOTIFY

    VM Regions Near 0x7f854dc78968:
    Stack 00007000092c1000-00007000093c0000 [ 1020K] rw-/rwx SM=COW thread 57
    –>
    MALLOC_SMALL 00007fdfa4000000-00007fdfa4800000 [ 8192K] rw-/rwx SM=PRV

    Application Specific Information:
    abort() called

    • Maxim Kolmakov

      Could you please contact our support team: Help->New Support Request we will need some details and logs from you?

      • http://www.park-manager.com Sebastiaan Stok

        Sorry for the late reply, the log did not show anything useful about the failed report except:

        “2017-05-12 16:36:02,592 [ 35825] INFO – ntellij.diagnostic.ITNReporter – reporting failed: com.intellij.errorreport.error.InternalEAPException: HTTP Result code: 400 ”

        I will try to send more details later today, or at least this week.

        • Vladimir Luchansky

          Best would be to discuss this with Support team – submit a request as mentioned above from PhpStorm > Help menu.

  • Greg

    Breadcrumbs seems to be moved from top of the editor to the bottom – is there any way to bring them back to the top?

  • Rüdiger Scheumann

    Shortcut for comment/uncomment does not work anymore on german mac keyboard layout. I was using CMD+- which worked in all previous versions; now in this release it folds code instead.