Всем привет!

Буквально вчера вышла новая версия PhpStorm, вторая в этом году. Я надеюсь, что ни наша IDE, ни компания JetBrains в отдельном представлении на Хабре не нуждаются, поэтому сразу перейду к основным изменениям. Кстати, чтобы не терять времени даром, можете поставить пробную 30-дневную версию на загрузку и читать дальше. Поехали!

image

Улучшенная поддержка языка PHP


PhpStorm научился еще лучше выводить типы (type inference) массивов и итераторов. Тип переменных теперь уточняется из кода, например, при использовании оператора instanceof. Также улучшения коснулись .phpstorm.meta.php.

image

Добавлена инспекция для строгой проверки типов PHP 7. При наличие в коде директивы declare(strict_types=1); PhpStorm будет предупреждать о соответствующих ошибках TypeError. Более подробно о ней вы можете прочитать в нашем блоге на английском языке.

image

Улучшения коснулись и парсинга. В частности, появилась поддержка универсального синтаксиса работы с переменными. Нововведением является поддержка PHP 7.1, выход которого ожидается в конце этого года.

image

Генерация аксессоров теперь поддерживает типы аргументов и возвращаемый тип. Уровень языка в проекте должен быть PHP 7 или выше.

image

Удобство редактирования


Значения констант показываются в списке автодоплнения рядом с их именами. Статические методы фильтруются при первом вызове автодополнения в динамическом контексте, но нажатие Ctrl + Space возвращает все как было (привет, PHPUnit).



Добавлен динамический шаблон для автодополнения параметров функций, методов и конструкторов. Он может быть вызван как с помощью ключевого слова params из списка автодоплнения, так и автоматически при вставке функции (необходимо включить отдельно в настройках: Settings > Editor > General > Smart Keys > Enable smart function parameters completion).

image

IDE теперь поддерживает умное автодополнение кода на основе типов (Smart Type Code Completion). Нажатие Ctrl + Shift + Space оставит в списке автодополнения только элементы, тип которых соответствует контексту. Тип контекста также учитывается при сортировке списка.

image

Унифицирована генерация и валидация PHPDoc тега @throws. Соответствующие настройки теперь живут по новому адресу Settings > Editor > Code Style > PHP > PHPDoc и позволяют выбирать глубину анализа дерева вызовов. Чуть более подробно здесь (на англ.).

image

Анализ качества кода


Импорты не только классов, но и функций, констант и пространств имен теперь могут быть отмечены как неиспользуемые. Они будут удалены при форматировании кода, если включена опция Optimize imports.

image

В дополнение к строгой проверке типов, PhpStorm обзавелся инспекцией для проверки типа возвращаемого значения функции. Она запускается при любом установленном уровне языка и учитывает не только сигнатуру функции, но и PHPDoc тег @return.

image

Еще одна новая инспекция рапортует о случаях, когда статический метод вызывается с помощью “->”. Она выключена по умолчанию, потому что PHPUnit (см. выше). Включить ее можно здесь: Settings > Editor > Inspections > Static method called as dynamic.

image

Фреймворки и инструменты


PhpStorm 2016.2 позволяет сохранить произвольный проект как шаблон (Tools > Save Project as Template…), чтобы впоследствии использовать его при создании нового проекта (File > New Project...).

image

IDE теперь поставляется вместе с новым плагином, который добавляет поддержку Joomla!. А именно: стиль кода, JHtml::_($argument), JText::_($argument), префикс БД и прочее.

image

Для того чтобы улучшить производительность интерпретатора, PhpStorm позволяет включать Xdebug только по требованию, пост в поддержку (на англ.).

image

Современные веб-технологии


Как обычно, PhpStorm 2016.2 влючает в себя все улучшения WebStorm 2016.2 сразу или при помощи плагинов. Например, TypeScript 2.0.

image

Добавлена поддержка Angular CLI и фрагментов кода (code snippets, они же live templates) для Angular 2.

image

Изображения, JavaScript-файлы и CSS-файлы теперь можно перетащить мышкой в открытый HTML-файл, и соответствующий тег будет вставлен автоматически.

image

Новые возможности и усовершенствования IntelliJ Platform


Работа с патчами, улучшенная вкладка Log для Git и Mercurial и другие изменения, связанные с системами контроля версий, уже описывались на Хабре и доступны в новейшей версии IDE.

image

UI претерпел ряд эволюционных изменений. Например, мы объединили вкладку Watches с вкладкой Variables в отладчике; уведомления переехали в правый нижний угол и группируются по типам; а также теперь можно установить произвольную картинку фона редактора.

image

IDE теперь “умеет” лигатуры. Просто скачайте и установите соответствующий шрифт (например, FiraCode), после чего включите соответствующую опцию в Settings > Editor > Colors & Fonts > Font (флажок Enable font ligatures).

image

Благодаря нашим коллегам из команды DataGrip, поддержка баз данных в PhpStorm также была улучшена. Встречайте автодополнение имен баз данных в диалоге настроек Data Source and Drivers, контекстно-зависимое автодополнение SQL и многое другое.

image

В заключение


Мы подготовили видео (на англ.), демонстрирующее все изменения и улучшения:



Бесплатное обновление до версии 2016.2 доступно всем, у кого есть активная подписка на PhpStorm или All Products.

Посетите страницу What’s New, скачайте новую версию, оставляйте свои комментарии здесь или в блоге PhpStorm, а также подписывайтесь на наш твиттер-аккаунт.

Программируйте с удовольствием!
— Команда JetBrains PhpStorm
Поделиться с друзьями
-->

Комментарии (124)


  1. SerafimArts
    14.07.2016 19:09
    +3

    Что-то странное с автокомплитом случилось, пишешь, например: \Invali и он отображает все возможные InvalidArgumentException в автокомплите из проекта, кроме SPL, который нужен (рутовый неймспейс как бы намекает). Что самое удивительное, если тыкнуть на Enter, выделив, например симфонийский какой-нибудь — он его не добавляет, а просто автокомплитит рутовым SPL.


    Так и задумано?


    1. Evgeny42
      14.07.2016 20:27
      +1

      JetBrains каждый релиз меняют алгоритмы автокомплита. Кажется что уже привык после последнего апдейта, а потом выходит новая версия. Поэтому пока что не сильно спешу обновляться с 9ой версии.


      1. Fesor
        14.07.2016 21:20
        +2

        Да не меняют они поведение автокомплита. Оно просто дополняется. Вот серьезно, сижу на шторме уже года 4 и как-то изменения меня не парят.


    1. Fesor
      14.07.2016 21:20

      Ну вообще-то это поведение уже давно. Можно воспринимать как баго-фичу.


      1. SerafimArts
        14.07.2016 22:00

        В 2016.1.* (что там было последнее?) такого не было. Разве что галочкой там как-то конфижилось вроде как.


        1. Fesor
          14.07.2016 22:34

          ну у меня так уже давно)


        1. symbix
          15.07.2016 15:46

          У меня в 2016.1 было так же, как и сейчас: SPL-ный есть, но далеко внизу.
          Тыкнуть на Enter на «не том» не пробовал, спасибо, это более-менее решает проблему.


    1. artspb
      15.07.2016 00:29
      +1

      Это баг, поправим, спасибо.


      1. artspb
        18.07.2016 09:16

        Отслеживать можно здесь.


  1. AleksDesker
    14.07.2016 20:27
    -3

    Делал две попытки с перерывом в два года перейти на PhpStorm, так и не смог. Все круто, все развесисто и даже не особо тормозит, но мало проектов, когда в неизменном окружении год что-то одно пилишь. Гораздо чаще надо что-то по быстрому поправить за пару часов прям на серве, с доступом по ssh или фтп, а в таких условиях сколько не пытался себя уговорить PhpStorm запускать — не смог. Слишком уж много времени тратиться на борьбу с фичами, которые все равно в этих условиях не заработают. Ну и мелочи типа отсутствия встроенного хелпа с пхп функциями, откуда что-то по быстрому скопипастить можно тоже чутка напрягает.


    1. jonic
      14.07.2016 21:26
      +11

      Мне кажется PHPStorm не для Вас


      1. AleksDesker
        14.07.2016 21:34

        В текущем состоянии да, хотя шаги сделаны были, прямой доступ к удаленным файлам и keep-alive фича, позволившая достаточно шустро обновлять удаленные файлы заставили меня сделать вторую попытку не так давно. Проблема в том, что для описанных условий ничего не подходит, кроме древнего Zend Development Enviroment 5.5 и я все еще поглядываю на PHPStorm, в надежде что там появиться какой-то отдельный минимизированный воркспейс и получиться среда в которой одновременно можно и солидный проект запилить и десяток мелких правок на разных серверах проделать быстро.


    1. khrisanfov
      14.07.2016 23:28
      +2

      Представляю с какими проектами вы работаете, в которых правка по FTP на проде это норма… Сам сейчас фрилансер, но до такого не опускаюсь, даже если клиент не против правок на проде всё-равно разворачиваю проект у себя, благо это занимает 15 минут при использовании Vargrant. Когда работа завершена и протестирована локально, можно залить правки с использованием «Upload to...» в PhpStorm'е, если клиент не знает что такое Git.


      1. AleksDesker
        14.07.2016 23:36
        -3

        Как правило это не прод, а dev сервер. Git это must-have для командной разработки, когда пилишь в одно лицо, по ходу помогая клиенту понять что же он хочет — наиболее эффективный путь это как раз дев сервер прямым доступом, когда клиент пишет что надо поправить и пока он пишет вторую строку ты уже сделал правки и просишь его глянуть на url- толи он имел в виду. Пускай это не частый сценарий, но в двух ide работать тоже не практично, хоткеи на уровне рефлексов лучше действуют когда в одной сидишь.


        1. khrisanfov
          14.07.2016 23:44
          +6

          Git хорош и при одном разработчике, тем более если они часто меняются, как в случае фриланса. История проекта под рукой, каждая правка документируется комментарием, нет помойки на сервере, быстрый откат к предыдущей версии если обнаружился баг. Показать клиенту результат работы, кстати, можно и на своем компьютере при желании, ну или «Upload to...» в крайнем случае.


          1. AleksDesker
            14.07.2016 23:59
            -3

            У меня часто меняются проекты, разработчик, то есть я — остаюсь :) Я тоже раньше с локальным серваком работал, но у меня винда стоит, точно такое же окружение уже не сделать. Да и в целом как-то стало проще на каком-нибудь digitalocean хранить пяток снапшотов, денег за это не берут, поднимаются они при необходимости за минуту… просто нужна IDE которая тоже сможет за минуту старый проект натянуть на новый удаленный сервак или вообще без создания проекта поправить что надо.


            1. aezhko
              15.07.2016 11:26
              +1

              Так для этого давно придумали всякие вагранты и докеры.


    1. aezhko
      15.07.2016 11:26
      +5

      Ух, я-то думал, что практика редактирования файлов по фтп изжила себя где-то в 2007ом…


  1. la0
    14.07.2016 20:29
    +1

    Одно из худших (с т.з. стабильности) обновлений.
    Все 2016.1+ при непонятных условиях(нет background tasks и чего-то подобного, отключены все плагины, IDE просто открыта) начинают просто съедать процессор. Помучился помучился и откатился на 9-10 версии.
    Честно говоря, со стабильностью уже примерно год от версии к версии то появляются то исчезают подобные чудеса. Хочется уже найти стабильную fallback версию и остаться на ней и параллельно смотреть альтернативы…


    1. gibson_dev
      14.07.2016 20:53
      +3

      Не закрываю IDE по 2-3 недели — полет нормальный, открыто 5 проектов в одной IDE, объема кода — мегабайт под 80-100 и в общем то никаких проблем не испытваю


    1. Akuma
      14.07.2016 21:14
      +1

      Аналогично, правда не всегда.

      Иногда все летает, но открываешь какой-нибудь маленький JS/JSX файл и начинается… иногда даже проще перезапустить IDE, чем мириться с лагами. Причем закономерности файл-лаги нет.


    1. Toledo
      14.07.2016 23:28
      +1

      Аналогично, периодически съедает почти весь процессорный ресурс (бывает, что и все 6 ядер). При этом фоновых задач нет. Бывает просто при добавлении небольшого файла к проекту «уходит в ступор»…

      Справедливости ради следует сказать, что проект немаленький (разработка модификаций для LMS Moodle), но раньше определенно меньше съедало ресурсов процессора, при этом по потреблению памяти замечаний нет.


    1. artspb
      14.07.2016 23:49

      Не похоже, чтобы проблема была массовой. Поэтому чтобы говорить о чем-то конкретно, нужен CPU snapshot. Записать его можно так или так, репортить сюда: https://youtrack.jetbrains.com/issues/WI /cc Akuma Toledo


      1. Akuma
        15.07.2016 09:59
        +1

        Ок, в следующий аз сделаю репорт


    1. akuchkovsky
      15.07.2016 14:25
      +1

      У меня с 9-й совсем все плохо стало, 8-я версия у меня лучше и стабильнее всего работала, саппорт проблемы не нашел, все снэпшоты отправлял, сейчас помогает только добавление памяти в PhpStorm.exe.vmoptions


      1. Toledo
        15.07.2016 22:00

        Спасибо за подсказку, попробую у себя. Только скажите, на x64 переходили, или установили максимум в 800 МБ?


        1. akuchkovsky
          15.07.2016 22:11

          x64 в прошлом году пробовал, не запускалась даже, все по умолчанию сейчас x32

          Вот этот файл
          c:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin\PhpStorm.exe.vmoptions

          Вот такое значение Xmx
          -Xmx1000m

          Если не будет запускаться, уменьшайте по 100M пока не запустится, бывает при 1024m уже не запускается.


  1. vshemarov
    14.07.2016 21:07

    Также улучшения коснулись .phpstorm.meta.php.

    А какие именно изменения в .phpstorm.meta.php? На сайте что-то не нашел.

    Вообще очень сильная фича, но не хватает в ней одной малости — регэкспов. Чтоб можно было параметр не просто строкой задать, а регулярным выражением с подстановкой в результате. Вот это была бы вообще убойная вещь!


    1. zim32
      14.07.2016 23:28

      У них же индекс там свой. Регекспом тут накладненько будет думаю


    1. Yoskaldyr
      14.07.2016 23:29

      DynamicReturnTypePlugin умеет не только регэкспы, но и больше.
      plugins.jetbrains.com/plugin/7251


  1. Wolfie
    14.07.2016 23:29

    О-о-о, лигатуры! Это же просто прекрасно!

    err ? nil, a ? 5, b ? c


    1. Noahzgard
      15.07.2016 12:20

      Так они и в 2016.1 были


  1. 3y3ik
    14.07.2016 23:29

    все круто, все нравится.
    спасибо за апдейт, но есть маленький баг, который раздражает последние несколько аптейтов, а именно, когда развернул себе дерево проекта, скрываешь вкладку Project, потом снова ее открываешь, то все папки уже не развернутые. приходится заново лазить по папкам и искать нужные файлы…


    1. artspb
      15.07.2016 00:09

      Так не должно быть, у меня дерево проекта переживает не только закрытие Project, но и перезапуск IDE. Если стабильно воспроизводится и переустановка не помогает, ждем в трекере. Кстати, последние файлы всегда можно найти с помощью Ctrl + E, любые файлы — Ctrl + Shift + N ну или Shift два раза.


      1. 3y3ik
        15.07.2016 00:48

        перезапуск IDE у меня тоже переживает, только если не сворачивать (Alt + 1) окно Project.
        если я это сделаю, и немного задержусь в файле, полажу в браузере и т.п., тогда при открытие Project окна, все пропадает.



    1. NosFire
      15.07.2016 12:20
      +1

      А мне эта баг-фича нравится. Когда большой проект и слишком большое дерево, я сворачиваю корень, после если надо «scroll from source» разворачиваю нужное дерево


      1. dmz9
        17.07.2016 13:03

        иногда надоедает месиво вкладок, просто зажимаю ctrl+W. потом
        ctrl+E — открыть последний файл. если сразу же начать печатать название файла или расширение, список будет фильтроваться. потом сразу enter.
        alt+F1, 1 — эта последовательность разворачивает дерево до файла, в котором сейчас фокус редактора
        на открытие и разворачивание дерева до последнего редактируемого и закрытого файла уходит примерно секунда


        1. skobkin
          18.07.2016 05:18

          Прошу прощения, отвечал artspb, но почему-то мобильное приложение отправило ответ не на тот уровень.
          UPD: жесть какая-то. Мобильное приложение отправляет ответ совсем не к тем комментам, к которым я его пишу. Это было сюда.


    1. skobkin
      18.07.2016 05:16

      Так не должно быть, да. Но мне, подписанному на этот тикет с приоритетом Major, с начала года приходят мольбы пользователей, которым это тоже ломает работу. Если мне не изменяет память, это появилось в первой версии 2016 и до сих пор не исправлено. Дико бесит. Приходится держать панель проекта постоянно открытой чтобы дерево не сворачивалось.


      1. artspb
        18.07.2016 08:34

        Мне жаль, постараемся пофиксить в 2016.3 (как следует из комментариев к issue). Пока можно попробовать альтернативные способы навигации, предложенные выше — возможно, они окажутся удобнее.


        1. symbix
          18.07.2016 14:49

          Лично мне этот баг не мешает- я дерево редко закрываю и для перехода в него пользуюсь Select Target -> Project View (hotkey на select target и ентер). Но уже который год наблюдаю игнорирование major багов в пользу «продающих» микрофич, которые можно включить в описание релиза. В комбинации с навязанным переходом на подписку с августа это заставляет задуматься об альтернативах.


          1. artspb
            18.07.2016 15:04

            На подписку, в числе прочего, перешли для того, чтобы не думать над тем, что будет красивее смотреться в релизе, а решать актуальные проблемы. Не думаю, что это изменение само по себе может позволить меньше чем за год кардинально исправить ситуацию к лучшему. Но тенденция есть, движение в этом направлении определенно видно. Так что я бы пока не стал торопиться с выводами, все-таки 2 ноября было не так давно.


            1. symbix
              18.07.2016 15:14

              К сожалению, пока что со стороны это выглядит как просто желание «доить» подпиской старых пользователей, которые привыкли и потерпят, и продолжать клепать хорошо выглядящие, но малополезные фичи для привлечения новых пользователей.

              Например (это, правда, до подписок было), фикса WI-17801 (со статусом Critical!) пришлось ждать больше года, и его пофиксили только потому, что один из пользователей оставил в комментариях такой пример, по которому фикс был очевиден. Сам собой напрашивается вывод, что потратить несколько часов на исследование причин бага — даже со статусом Critical — у разработчиков просто нет времени, надо выполнять план по списку фич, спущенных маркетологами.

              Тенденцию вроде бы наблюдал, но вот этот баг заставил задуматься.


              1. artspb
                18.07.2016 16:52

                Ну, убеждать человека в обратном, если у него уже есть свое стройное объяснение происходящему, это всего дело неблагодарное. Скажу лишь только, что у нас нет маркетологов, которые бы составляли «план по списку фич». Вообще, внутренняя кухня JB сильно отличается от среднего по отросли, здесь можно найти немного инсайда, если интересно.


                1. symbix
                  19.07.2016 02:27

                  Никаких стройных объяснений, простые предположения. Основанные на «среднем по отрасли», да.

                  На самом деле, подписку в любом случае куплю, потому что деваться некуда, все альтернативы намного хуже. Но очень хотелось бы, чтобы критичные баги не висели по году :)


  1. MGames
    14.07.2016 23:29

    О да, теперь я могу ставить картиночку в бэкграунд редактора! Сколько я этого ждал!
    На винде вкладки терминала невозможно переименовать, так как после двойного клика через секунду слетает фокус. Поле «working directory» в ssh external tools самостоятельно меняет слэши с юниксовых на виндовые, из-за чего тулзами невозможно пользоваться…
    … но зато можно менять фон — браво!


    1. MGames
      15.07.2016 00:00

      Хм, кажется я малость погорячился насчёт external tools. Слеши меняются, но работоспособность сохраняется.
      А не работало из-за того, что параметры команде я передавал прямо в поле «program». Интересно, что версия для мака нормально переваривает эти параметры


  1. Budyaga
    14.07.2016 23:47

    Спасибо за проделанную работу. Скажите, есть ли возможность настроить «Xdebug по требованию» в Docker-контейнере, запущенном в docker-machine?


    1. CrazyLazy
      15.07.2016 10:47

      Хм… Насколько мне известно «Xdebug по требованию» работает только с «PHP Script» конфигурациями: то-есть при запуске PHP скриптов в CLI режиме (будь-то локально или удаленно через SSH) так как эта «инструкция» передается дополнительным параметром напрямую PHP интерпретатору. Если Вы можете его (PHP интерпретатор в PhpStorm) настроить для Вашего Docker-контейнера… тогда и тут должно сработать. Но, насколько мне известно, Docker работает по другому…


    1. artspb
      22.07.2016 15:10

      Если речь идет про web server, то я уже ответил выше (хотя тут может быть проще, т.к. можно просто перезапустить контейнер), а если речь идет об интерпретаторе, то над интерпретаторами для docker контейнера мы работаем.


  1. samizdam
    14.07.2016 23:57

    До обновления была возможность создать Empty Project. Теперь вижу только шаблоны, которые требуют времени на загрузку всякого добра, которое все равно приходится потом удалять…


    1. artspb
      15.07.2016 00:02

      PHP Empty Project на месте…


  1. Andchir
    15.07.2016 00:49

    https://www.jetbrains.com/help/phpstorm/2016.2/system-requirements.html
    По-моему требования к системе у вас занижены. У меня на ноутбуке 6 ГБ памяти и даже этого бывает мало (на 4-х вообще был ад). Надо учитывать, что кроме PhpStorm у любого программиста запущены другие программы, например, браузер, скайп… У меня Линукс, если что.


    1. symbix
      15.07.2016 15:29

      Понятно, что имеется ввиду свободная память. На машине разработчика может и 16 гигов быть занято спокойно (пачкой vagrant-боксов, скажем).


      1. Andchir
        17.07.2016 13:10

        Для вас понятно, а для начинающего PHP-разработчика совсем не понятно. Он привык в тому, как пишут системные требования к игрушкам. Там, если написано «рекомендуется» — значит должно хватить по-любому. Конечно, у игр своя специфика, но эту специфику должен учитывать тот кто пишет системные требования к программам. Надо добавлять уточнение «свободной памяти».
        Ну и хорошо бы отслеживать расход памяти и информировать пользователя, а не просто зависать наглухо.


        1. Andchir
          17.07.2016 13:20

          На машине разработчика может и 16 гигов быть занято спокойно (пачкой vagrant-боксов, скажем)
          Я имел ввиду только самое необходимое для рядового разработчика (браузер, мессенджер). Если я не использую всяких там «vagrant-боксов», то мне должно хватать памяти.


  1. arodygin
    15.07.2016 01:30
    +1

    Иногда, когда в одном файле используется относительно много классов из одного и того же namespace, я делаю «use» только для родительского namespace. Т.е. вместо (пример условный!):

    use Foo\Bar\Class1;
    use Foo\Bar\Class2;
    ...
    use Foo\Bar\Class10;
    
    $var1 = new Class1();
    $var2 = new Class2();
    ...
    $var10 = new Class10();
    

    пишем:

    use Foo\Bar;
    
    $var1 = new Bar\Class1();
    $var2 = new Bar\Class2();
    ...
    $var10 = new Bar\Class10();
    

    Вчера обновился с 2016.1.2 на 2016.2, прогнал инспекции — PhpStorm ругается на подобные сокращенные «use», как на «unused import». Предыдущая версия (2016.1.2) не ругалась (хотя действительно неиспользуемые импорты находила). Это бага? Бежать в трэкер? Временно отключил соответствующую инспекцию (php-cs-fixer все равно лечит действительно неиспользуемые импорты), но неприятно. :)


    1. SerafimArts
      15.07.2016 03:39

      Тоже самое творится и, например, с доктриноскими аннотациями:


      use Blabla\Any; // Пишет что неиспользуется и удаляет
      
      /**
       * @Orm\Entity(repository=Any::class)
       */
      class Some
      {
      
      }


      1. CrazyLazy
        15.07.2016 12:06
        +1

        https://youtrack.jetbrains.com/issue/WI-31774


    1. artspb
      15.07.2016 07:20

      У меня не воспроизводится. Есть минимальный пример, на котором 100% работает неправильно?


      1. arodygin
        15.07.2016 08:38
        +1

        Самое интересное, что у меня на вашем коде — тоже. Попробовал написать чуть более развернутый пример (с «composer» и нормальным autoload'ом) — тоже все ок.

        Снова открыл свой рабочий проект — ошибки есть. Удалил папку ".idea" из корня проекта, переоткрыл проект, проинспектировал — ошибки есть, но их теперь другое число. Попробовав несколько раз получал различные значения от 7 до 13. Такое ощущение, что нужно достаточно большое количество таких импортов в разных файлах, чтобы оно стало воспроизводиться (причем ругается только на некоторые из этих импортов, а не на все подобные).

        Поскольку проект opensource, почему бы не воспроизвести прямо на нем:

        1. Качаем исходники архивом — https://github.com/etraxis/etraxis/archive/ce16e0d5fe08fa79b5153f6db2f5e4e6abef1f3c.zip.
        2. Распаковываем архив.
        3. Открываем проект в PhpStorm.
        4. Соглашаемся на autodetect PSR-0 namespaces.
        5. Инспектируем папку «src».

        Поскольку нет папки «vendors», будет очень много «undefined». А если в настройках проекта язык не PHP7, то еще и много errors. Игнорируем, смотрим «unused imports» — они там есть.

        6. Закрываем проект.
        7. Удаляем папку ".idea".
        8. Повторяем шаги 3-5 — снова есть «unused imports», но скорее всего уже другое число.


        1. artspb
          18.07.2016 09:21
          +1

          Завел, будем смотреть, спасибо.


          1. arodygin
            18.07.2016 13:36
            +1

            Огромное спасибо!


          1. arodygin
            20.07.2016 00:29
            +1

            Сегодня ночью вышел EAP (билд 162.1447.5). В списке фиксов нашел и этот баг (точнее, тот тикет, на который его задупали). Скачал, развернул, проверил — работает. Оперативно, спасибо большое! :)


            1. artspb
              21.07.2016 13:26

              Пожалуйста, стараемся :)


  1. DeLuxis
    15.07.2016 07:02
    +1

    Joomla на столько популярна, что ее включили в IDE?
    Почему?


  1. ifqthenp
    15.07.2016 07:17
    +2

    Ребята, хватит понтоваться — картинки, лигатуры и прочее… Пофиксите баги, которых с каждым выходом становится все больше. Вы будете смеяться, но начиная с версии 10.0.2 до сих пор существует такой баг в PHPStorm как $_POST global array is empty when using IDE's in-built server (https://youtrack.jetbrains.com/issue/WI-31257). Разработчики даже не чешутся.


  1. lleo_aha
    15.07.2016 08:45
    +1

    А ещё с перетаскиванием картинки в html пример достаточно странный — зачем оно самозакрывающийся тег вставляет при условии что документ — html5?


    1. Andchir
      15.07.2016 10:43

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


  1. sefus
    15.07.2016 11:22
    +1

    Уже сколько версий прогресс бар загрузки модулей на сплэш-скрине начинается с отступом от левого края, а заканчивается в упор к правому. В чем тайный смысл сего несимметричного дизайна?


  1. noway
    15.07.2016 11:26

    По дури перешел на macOs Sierra и в нем не работает ни новый, ни предыдущий шторм. Отправил баг. Пока поставил старый шторм (10.0.4) который и работает шустрее и не вылетает каждые 5 мин. Да и шрифт оказыватеся в нем был приятнее


  1. maxru
    15.07.2016 11:47

    Уииииииии!

    То есть спасибо большое!


  1. VictoRD11
    15.07.2016 12:20

    Баг с Remote Host FTP — когда не доступен FTP сервер, зависает весь PhpStorm под MacOs El Capitan нужно принудительно завершать


    1. Lene
      22.07.2016 14:57

      Не смогла воспроизвести( Возможно, попытки подключиться занимают слишком много времени. Если вам не трудно, не могли бы вы создать ишью на YouTrack и приаттачить туда логи (Help | Show Log in Finder)?


  1. dizzy7
    15.07.2016 12:20

    Возможно ли реализовать включение/выключение xdebug для web-окружения? Например прописать вызов определенного скрипта при включении/выключении «Listening for PHP debug connections»


    1. artspb
      22.07.2016 15:06

      Если речь идет о «PhpStorm позволяет включать Xdebug только по требованию», то пока такой возможности нет, т.к. web server нужно перезагружать при изменении php конфигурации. Если Вы знаете инструментарий web server'а, который позволяет это сделать, то ждем feature request в нашем трекере.


      1. dizzy7
        22.07.2016 16:35

        Понятно что универсального решения здесь не будет, поэтому и написал про возможность задать выполнение скрипта на какое-либо действие — возможно этот функционал уже есть, но я его не нашёл?


        1. artspb
          22.07.2016 18:05

          Такой функциональности нет, на сколько мне известно.


  1. AlexKeller
    15.07.2016 13:00
    -1

    Единственная вещь, которая не просто неудобна в шторме, а ужасно бесит — это «забывание» того, что я переключил раскладку клавиатуры. Т.е. нажимаю Ctrl+Shift+N, начинаю печатать имя файла, понимаю, что печатаю на русском, переключаю язык, выбираю файл или закрываю окно — язык снова русский. И беда эта тянется, как бы не соврать, аж с 3-й (!) версии, ну или где-то в тех краях. И воспроизводится в любых окнах — поиск файла, просто поиск, окно коммита и т.д.

    Может быть это когда-нибудь исправлено?


    1. moscas
      15.07.2016 13:24

      С 2016.2 IDE должна понимать что за файл, даже если вы печатаете на русском.


    1. CrazyLazy
      15.07.2016 13:51
      +1

      Пишут что это проблема Windows и в 10-ке должно уже быть пофиксено: https://youtrack.jetbrains.com/issue/IDEABKL-6290 (и поэтому тикет в IDEBKL (backlog) проекте).

      Пройдитесь по комментариям — там много разных «решений» и предложений.


    1. Fedot
      15.07.2016 14:10

      Это не проблема IDE, это лечиться настройками DE (Desktop Environment).
      Вангую что у вас выставлена раскладка на каждое окно. Можно выставить например на приложение или глобально, и проблема уйдёт.


      1. AlexKeller
        15.07.2016 15:39

        Почему-то в том же Sublime такой проблемы нету


        1. Fedot
          15.07.2016 19:38

          Это может быть обусловлено тем что sublime создаёт всплывающие окна иными средствами, и DE не считает их окнами. По типу того как можно просто нарисовать html окно.


      1. Oldron
        16.07.2016 14:06

        Нет. Это именно проблема IDE. Редактор запоминает раскладку и восстанавливает её после переключения в других приложениях, даже после переключения в диалогах самой IDE.
        Win 10. Единая раскладка для всех приложений.


        1. symbix
          16.07.2016 18:45

          Это может быть проблемой JRE. В OS X и Linux можно переключаться между системной и поставляемой с PhpStorm, наверное, и в Windows тоже так можно — это не решит проблему?


          1. Oldron
            17.07.2016 05:36

            Выставил путь до внутренней JRE в WEBIDE_JDK. Запустил из bat. Результат тот же, восстанавливается последняя ипользуемая раскладка в редакторе.


  1. timfcsm
    15.07.2016 14:25

    А почему в WS не сделали возможность сохранить проект как шаблон?


  1. reactoranime
    15.07.2016 14:26

    Или я избранный или что-то не так с обновлением, в этой версии совершенно перестал работать debug / debug listening, а именно совершенно не ловит сессию, php5.6+with xdebug enabled, Запускаю через php -S domain.dev:80.


    1. reactoranime
      15.07.2016 16:20

      Пардон разобрался xdebug.remote_enable = 1 надо выставлять в настройках php.ini. не помню надо ли такое раньше выставлять


  1. AsidStorm
    15.07.2016 14:26

    Установлен PhpStorm 2016.1, при вводе конструкции вида

    И нажатии Enter, PhpStorm переходит на новую строку и ещё 1 строку рисует после неё, так и не смог найти настройку, которая за это отвечает, может быть кто-то знает?


    1. AsidStorm
      15.07.2016 15:25
      +1

      Скушался код.

      Имелось ввиду после закрывающего PHP тега.


      1. CrazyLazy
        15.07.2016 15:34

        Может быть это? Settings/Preferences | Editor | General --> Ensure line feed at file end on Save


        1. AsidStorm
          15.07.2016 15:40

          К сожалению, нет, галочка не установлена. (Впрочем, если её включить — на данный кейс не реагирует)


          1. CrazyLazy
            15.07.2016 16:47

            Попробуйте тогда сбросить настройки форматирования (Code Style) — используйте Default. Также, как вариант, может в проекте есть .editorconfig файлы и используется EditorConfig плагин? Других идей (кроме как отключение всех сторонних (не установленных по умолчанию) плагинов или удаления всех настроек (что бы посмотреть — а поможет ли)) пока не наблюдается…

            Кстати, эта «дополнительная строка» — такое поведение только в конце файла или в средине тоже?


            1. AsidStorm
              16.07.2016 13:03
              +1

              Сброс настроек к дефолтным не помог. Отключение всех плагинов — как только плагин PHP активен, сразу же появляется ошибка.

              Такое поведение именно в конце файла.

              Интересно, останется ли ссылка в комментарии: http://imgur.com/VZk57AW


              1. artspb
                19.07.2016 14:56

                Завели, спасибо.


                1. AsidStorm
                  19.07.2016 14:59
                  +1

                  Артем, благодарю. Буду с нетерпением ждать настройку / исправление.


  1. cold147
    15.07.2016 16:46

    Раньше когда нажимал двойной шифт, ИДЕ перехватил выделенный текст, сейчас перестал.
    Это настраивается или баг?


    1. CrazyLazy
      15.07.2016 17:08
      +1

      Тут попросили это отключить: https://youtrack.jetbrains.com/issue/IDEA-147128…

      А тут спрашивают обратно это все включить: https://youtrack.jetbrains.com/issue/IDEA-157100…


      1. cold147
        15.07.2016 17:18

        Спасибо за ссылки, проголосовал, надеюсь вернут все как было, или сделают опцией


  1. 3y3ik
    15.07.2016 18:31

    Ещё, не мение странный баг, при создание проекта, клонирование с ftp, папки которые помечаешь как execute from download никак не подсвечиваться, в отличии от предыдущих версий, где было понятно что и как.


    1. Lene
      22.07.2016 13:53
      +1

      Спасибо, пофиксим.


  1. vshemarov
    18.07.2016 11:01

    Заметил мелкий, но неприятный баг в последней версии: я, как правило, всем проектам задаю имя, и раньше в списке недавно использованных проектов высвечивались именно эти, заданные вручную, имена. А сейчас высвечиваются либо полные пути, либо имя папки. Кому как, но для меня это жутко неудобно


    1. artspb
      18.07.2016 11:27
      +1

      По всей видимости, это оно. Баг уже исправлен и будет поставлен в следующем минорном апдейте.


      1. vshemarov
        18.07.2016 14:46

        Да, оно, спасибо


  1. 3y3ik
    18.07.2016 11:58

    У меня вопрос, может кто-то подскажет
    Я работаю на сервере через sftp
    Когда я выбираю Deployment — Download from Server файлы загружаться на компьютер, все ок. Но если, я после этого изменю один файл и сохраню изменения, то на сервер отправляются все файлы, которые перед этим были скачаны.
    В чем проблема, почему так происходит?
    Спасибо


    1. Lene
      22.07.2016 14:36
      +1

      А какие у вас настройки в Options | Deployment | Overwrite up-to-date files? Возможно ли, что эти файлы все же были чем-то изменены (повторная транспиляция, и т.п.)? Также было бы замечательно, если бы вы завели тикет на YouTrack, и мы продолжили бы обсуждение там.


      1. 3y3ik
        22.07.2016 14:47

        Это не баг скорей. У меня была выставлена данная галочка и Preserve files timestamps. Это происходило из-за них


        1. Lene
          22.07.2016 14:51

          Preserve file timestamps просто изменяет таймстемп отдельной командой, так что скорее из-за первой настройки.


          1. 3y3ik
            22.07.2016 15:28

            Странно. Файлы на сервере точно не были изменены. При включённой Preserve files timestamps происходила перезаливка файлов
            По этому пришлось убирать 2 галочки


  1. Set0r
    19.07.2016 22:02

    Перестал работать автокомплит статических методов, которые вызываются динамически.
    Например, в PHPUnit метод assertEquals() объявлен статически, но обычно его вызывают как $this->assertEquals() соответственно в автодополнении для $this->assert… осталось лишь 4 метода. Можно отключить эту фичу в настройках?


    1. CrazyLazy
      20.07.2016 02:45

      Нажмите Ctrl+Space еще раз чтобы показать все методы (https://youtrack.jetbrains.com/issue/WI-32493).

      По другому пока никак: https://youtrack.jetbrains.com/issue/WI-32530


  1. akuchkovsky
    20.07.2016 23:58

    К сожалению, 2016.2 настолько глючный релиз, что откатился к 10-версии, с файлами вне проекта печаль, памяти стал жрать еще больше, анализатор кода работает с ошибками, на все методы и функции в многострочных комментариях выдает, мол, синтаксическая ошибка, автокомплит работает как-то иначе, глючит непонятно, пользоваться невозможно, новых функций с каждым релизом все больше, а толку от этого ноль, проблем создаете еще больше, может все же лучше и подольше тестировать беты? К чему такая спешка?


    1. symbix
      21.07.2016 18:07

      проблемный, да, но вроде не настолько плохо, invalidate caches пробовали?


      1. SerafimArts
        21.07.2016 18:45

        Есть проблемы совершенно не связанные с кешем, например попробуйте открыть этот исходник:


        <?php
        class Resource
        {
        }
        
        class ResourceRepository
        {
            public function add(Resource $resource) {}
        }
        
        $repo = new ResourceRepository;
        $repo->add(new Resource);

        Он корректно работает на всех версиях пыха (начиная с каких-нибудь 5.х, заканчивая 7.1), но попробуйте выставить версию пыха php 5.6 или ниже в шторме.


        Особо радует ошибка на последней строчке: "Resource is not a Resource"


        1. symbix
          21.07.2016 19:18

          Хаха, забавно, очевидно, это сломали при добавлении поддержки 7-ки. Типа, пхпшный resource. Был бы class String, в 7-ке бы сломалось. Перестарались чуток :)


          1. SerafimArts
            21.07.2016 19:48

            Ну есть не менее забавные, но вполне вменяемые сообщения об ошибках:


            $pairs = [];
            $items = [1, 2, 3, 4, 5];
            
            foreach ($items as $i) {
                foreach ($items as $j) {
                    // ...
                }
            }

            Второй foreach подсвечивает как This loop does not loop (это не те дроидеки, что вы ищите...). =)


            1. artspb
              21.07.2016 20:01

              Что-то не воспроизводится. Плагины?


              1. SerafimArts
                21.07.2016 20:22

                Упс, мой косячок.


                Это "EA Extended" плагин расширенного анализа кода такое "диковатое" сообщение выдаёт, вместо более вменяемого Loop does not contain a body, например.


        1. artspb
          22.07.2016 14:53

          Поправили, будет в следующем EAP.


  1. DaHacka
    22.07.2016 08:28

    После апдейта отвалилось «Create New Project from Existing Files», если указывать в качестве источника sftp. Сначала думал что проблема в бета-версии mac os, откатился на El Capitan и переустановил phpstorm «с нуля» — проблема не решилась. Создается директория, файлы скачиваются, но после этого сам проект не создается, просто остается окно приветствия.


    1. Lene
      22.07.2016 13:04
      +1