PhpStorm 2017.1 EAP 171.2455

The new PhpStorm 2017.1 EAP build (171.2455) is now available! You can download it here or via JetBrains Toolbox. Or, if you have the previous PhpStorm 2017.1 EAP build (171.2272) installed, you should soon get a notification in the IDE about a patch update.

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

Improvements in support of PHP 7 Uniform Variable Syntax

This build brings improvements for PHP 7 Uniform Variable Syntax by RFC. Expressions such as isset/unset,  foo()()().., and $some->foo()()  style calls are now supported.


Auto-import of functions and constants

In this build, we’ve added auto-import of functions and constants. It will work for you automatically if Enable auto-import in file scope and/or Enable auto-import in namespace scope are enabled (Settings | Editor | General | Auto Import | PHP ).


Auto-import from the global namespace

We’ve added a new option to enable auto-import of classes, functions, and constants from the global space. The option can be found in Settings | Editor | General | Auto Import | PHP | Enable auto-import from the global space.


As an alternative to auto-importing functions and constants from the global namespace, you can ask the IDE to use global references. You can find this option in Settings | Editor | General | Auto Import | PHP | Prepend functions and constants from the global space with ‘\’.


This can help improve the performance of the PHP interpreter in some cases.

Fully-qualified class names in PHPDoc type description

Now when Use fully-qualified class names is enabled, it will be taken into account for completion, and the fully-qualified name will be used in the PHPDoc type description. The option can be found under Settings | Editor | Code Style | PHP | PHPDoc | Generated Doc Blocks.


Support for function/constant/namespace aliases in unused imports

Function/constant/namespace aliases are now supported in unused imports.

FrameCapture 2017-01-18 at 03.39.40 PM

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

Download PhpStorm 2017.1 EAP build 171.2455 for your platform from the project EAP page or click “Update” in your JetBrains Toolbox 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 and tagged . Bookmark the permalink.
  • Jexy Ru

    > Now when Use fully-qualified class names option is enabled, it will be taken into account…


  • Martín M.

    since the first 2017.1 version the fonts looks ugly on ubuntu … any ideas?

  • Szerémi Attila

    I think what would be more important is to fix class aliasing swallowing Find Usages
    Or being able to do relative imports in the import dialog

    • Artem Khvastunov

      1. I saw you’ve voted for the issue, but if someone else wants to do it, here it is
      2. Could you please elaborate on this, how do you see it? Or maybe is there an issue already?

      • Szerémi Attila

        @artspb:disqus Thank you for linking that, it’s the issue I had in mind.
        Actually I’m not entirely sure if the description of the issue matches what I’m thinking of, but I did try to rephrase what the issue is as I see it:

        And although aliases with “as” don’t quite work with Find Usages, partial imports do work fine! However the inconvenience there is that I can’t import partially in the import dialog; I have to manually scroll to the top of the php file and create one myself.

        • Artem Khvastunov

          What do you mean by partial imports? Import of a namespace? It would be great if you can demonstrate it with a code sample, I don’t really get the idea…

          • Szerémi Attila

            Of course.
            Actually I’m not certain “partial import” is the correct term, but what I mean by it is when you have a FQCN of Ns1Ns2ClassName, and there may not even be a Ns1Ns2 class, you can do import Ns1Ns2, then later in the code you can reference the class as Ns2ClassName.
            And it works completely, and is also fully traceable with Find Usages. However there’s no way to import partially like that in the import dialog in PhpStorm.

          • Artem Khvastunov

            Sounds reasonable. I can’t find an existing feature request so it would be great if you create one.

          • Attila Szeremi
          • Artem Khvastunov

            Thank you!

  • Codelegance

    Prepend isn’t a word. You probably mean, prefix, instead.

    • Artem Khvastunov
      • Codelegance

        Confident. It is programmer slang, nothing more. Some ignorant programmers wanted an antonym for append and didn’t know or care that one doesn’t exist. They were seemingly unaware of the prefix/suffix dichotomy they could have used instead.

        • Artem Khvastunov

          Thank you for letting us know. We’ll think how to rephrase it.

        • GeeH

          Prepend has been a word in the English language since the late 1800s, and even if it was a recent invention, every English speaking developer would know what it means. It’s the right word in this case, but thank you Codelegance for your raising concern.

          • Codelegance

            You seem to have neglected your source.

  • Zemistr

    It looks like this version has problem with Docker on Ubuntu 16.04.
    I can’t start containers. :/

    • Artem Khvastunov

      We cannot reproduce this problem. It would be great if you contact our support team (Help->New Support Request) with the more detailed explanation.

  • Михаил Красильников

    Когда уже откатите все ухудшения, сделанные вами в последней версии?
    и когда наконец доделаете вот это: ?
    Уже, блин, 5 (пять!) лет прошло.

  • Evgeniy Nikonorov

    Честно говоря, глядя на все списки логов (смотрю почти каждый релиз) становится грустно. PHP Шторм. для PHP программистов и они платят за него деньги. Но в итоге в КАЖДОМ релизе улучшения для ноды, js-скриптов и библиотек типа: ангуляр, там кофи скрипты, сасс и т.д. Но такие вещи как твиг и блейд (вроде как очень прям распостраненные вещи) вообще просто не юзабельны! Ни рефакторинга кода, ни автокомплита переменных, ни find usages… и т.д.

    Некоторые тикеты висят по два года, хотя там запрос: Добавьте док блоки в темплейты типа: /** @var TestClass $test */ и все, что является элементарной задачей и это намного улучшит работу с темплейтами. Но нет, вы добавляете опцию выделения переменных со знаком доллара или без что является ну вот совсем ситуативным удобством, которое использовать будут единицы пользователей.

    Тоесть темплейты можно чуть-ли не в блокноте писать а не в шторме. Значит вы считаете что улучшения и поддержку той же angular.js делать необходимо, а нативную поддержку симфонии, ларавела, кодигнайтера писать не стоит. Где логика? У вас же есть WebStorm для фронт-енд разработки. А в ПХП Шторме, должны продвигаться как раз таки ПХП инструменты и фреймворки, а не джаваскриптовые.

    Вывод один, если так пойдет дальше, лицензию на ваши продукты я продлевать точно не стану.

    • Anna Lebedeva

      @evgeniynikonorov:disqus , спасибо за комментарий. Поддержка Node.js, Angular.js, и прочего, попадает в PhpStorm автоматически из WebStorm. Так что ресурсы разработчиков PhpStorm используюся только на фичи, связанные с PHP. Запросов много и выбирать задачи, над которыми работать не просто, мы руководствуемся совокупностью факторов, только один из которых количество проголовавших. Планов на нативную поддержку Symfony, Laravel, пока нет, поскольку мы считаем, что сторонние плагины достаточно хороши, Codeigniter возможно скоро добавим. В целом, мы сейчас усовершенствуем каждую подсистему продукта в отдельности, и поддержка фреймворков не является основным фокусом на данный момент, но мы посмотрим еще раз возможность улучшить работу с Twig и Blade.

      • Evgeniy Nikonorov

        Я понимаю, что некоторые фичи могут показаться бесполезными просто потому что ты этим не пользуешься, а то что ты используешь ежедневно не фиксят – и это вызывает негодование (но опять таки это личное). Спасибо за ответ. Думаю очень много людей будет благодарны за улучшения работы с шаблонизаторами (самое необходимое это хотя-бы возможность задавать типы переменных через док-блоки чтобы работал Find usages… и автокомплит методов и свойств).

        Заранее благодарю от всех кто работает с шаблонизаторами ))

  • Sascha Glover

    I’ve a problem regarding some keyboard functionalities. I.e. if I press Shift + Option + 7 (QWERTZ keyboard, german version, Mac OS sierra, latest version) to generate a backspace it unexpectedly inserts some text. It seems like it autocompletes the text from the left side of my caret… I use the “Default” keymap with no special keys defined.

    I experienced this issue 2 versions below the current EAP but with the last build it seemed to be fixed until now… couldn’t find any Bug in YouTrack.

    Does anyone else have these kind of problems? Currently I have to copy the backspace and insert it to the current caret position which is absolutely annoying :)

    Thanks in advance!