Буквально вчера вышла новая версия PhpStorm, вторая в этом году. Я надеюсь, что ни наша IDE, ни компания JetBrains в отдельном представлении на Хабре не нуждаются, поэтому сразу перейду к основным изменениям. Кстати, чтобы не терять времени даром, можете поставить пробную 30-дневную версию на загрузку и читать дальше. Поехали!
Улучшенная поддержка языка PHP
PhpStorm научился еще лучше выводить типы (type inference) массивов и итераторов. Тип переменных теперь уточняется из кода, например, при использовании оператора instanceof. Также улучшения коснулись .phpstorm.meta.php.
Добавлена инспекция для строгой проверки типов PHP 7. При наличие в коде директивы declare(strict_types=1); PhpStorm будет предупреждать о соответствующих ошибках TypeError. Более подробно о ней вы можете прочитать в нашем блоге на английском языке.
Улучшения коснулись и парсинга. В частности, появилась поддержка универсального синтаксиса работы с переменными. Нововведением является поддержка PHP 7.1, выход которого ожидается в конце этого года.
Генерация аксессоров теперь поддерживает типы аргументов и возвращаемый тип. Уровень языка в проекте должен быть PHP 7 или выше.
Удобство редактирования
Значения констант показываются в списке автодоплнения рядом с их именами. Статические методы фильтруются при первом вызове автодополнения в динамическом контексте, но нажатие Ctrl + Space возвращает все как было (привет, PHPUnit).
Добавлен динамический шаблон для автодополнения параметров функций, методов и конструкторов. Он может быть вызван как с помощью ключевого слова params из списка автодоплнения, так и автоматически при вставке функции (необходимо включить отдельно в настройках: Settings > Editor > General > Smart Keys > Enable smart function parameters completion).
IDE теперь поддерживает умное автодополнение кода на основе типов (Smart Type Code Completion). Нажатие Ctrl + Shift + Space оставит в списке автодополнения только элементы, тип которых соответствует контексту. Тип контекста также учитывается при сортировке списка.
Унифицирована генерация и валидация PHPDoc тега @throws. Соответствующие настройки теперь живут по новому адресу Settings > Editor > Code Style > PHP > PHPDoc и позволяют выбирать глубину анализа дерева вызовов. Чуть более подробно здесь (на англ.).
Анализ качества кода
Импорты не только классов, но и функций, констант и пространств имен теперь могут быть отмечены как неиспользуемые. Они будут удалены при форматировании кода, если включена опция Optimize imports.
В дополнение к строгой проверке типов, PhpStorm обзавелся инспекцией для проверки типа возвращаемого значения функции. Она запускается при любом установленном уровне языка и учитывает не только сигнатуру функции, но и PHPDoc тег @return.
Еще одна новая инспекция рапортует о случаях, когда статический метод вызывается с помощью “->”. Она выключена по умолчанию, потому что PHPUnit (см. выше). Включить ее можно здесь: Settings > Editor > Inspections > Static method called as dynamic.
Фреймворки и инструменты
PhpStorm 2016.2 позволяет сохранить произвольный проект как шаблон (Tools > Save Project as Template…), чтобы впоследствии использовать его при создании нового проекта (File > New Project...).
IDE теперь поставляется вместе с новым плагином, который добавляет поддержку Joomla!. А именно: стиль кода, JHtml::_($argument), JText::_($argument), префикс БД и прочее.
Для того чтобы улучшить производительность интерпретатора, PhpStorm позволяет включать Xdebug только по требованию, пост в поддержку (на англ.).
Современные веб-технологии
Как обычно, PhpStorm 2016.2 влючает в себя все улучшения WebStorm 2016.2 сразу или при помощи плагинов. Например, TypeScript 2.0.
Добавлена поддержка Angular CLI и фрагментов кода (code snippets, они же live templates) для Angular 2.
Изображения, JavaScript-файлы и CSS-файлы теперь можно перетащить мышкой в открытый HTML-файл, и соответствующий тег будет вставлен автоматически.
Новые возможности и усовершенствования IntelliJ Platform
Работа с патчами, улучшенная вкладка Log для Git и Mercurial и другие изменения, связанные с системами контроля версий, уже описывались на Хабре и доступны в новейшей версии IDE.
UI претерпел ряд эволюционных изменений. Например, мы объединили вкладку Watches с вкладкой Variables в отладчике; уведомления переехали в правый нижний угол и группируются по типам; а также теперь можно установить произвольную картинку фона редактора.
IDE теперь “умеет” лигатуры. Просто скачайте и установите соответствующий шрифт (например, FiraCode), после чего включите соответствующую опцию в Settings > Editor > Colors & Fonts > Font (флажок Enable font ligatures).
Благодаря нашим коллегам из команды DataGrip, поддержка баз данных в PhpStorm также была улучшена. Встречайте автодополнение имен баз данных в диалоге настроек Data Source and Drivers, контекстно-зависимое автодополнение SQL и многое другое.
В заключение
Мы подготовили видео (на англ.), демонстрирующее все изменения и улучшения:
Бесплатное обновление до версии 2016.2 доступно всем, у кого есть активная подписка на PhpStorm или All Products.
Посетите страницу What’s New, скачайте новую версию, оставляйте свои комментарии здесь или в блоге PhpStorm, а также подписывайтесь на наш твиттер-аккаунт.
Программируйте с удовольствием!
— Команда JetBrains PhpStorm
Комментарии (124)
AleksDesker
14.07.2016 20:27-3Делал две попытки с перерывом в два года перейти на PhpStorm, так и не смог. Все круто, все развесисто и даже не особо тормозит, но мало проектов, когда в неизменном окружении год что-то одно пилишь. Гораздо чаще надо что-то по быстрому поправить за пару часов прям на серве, с доступом по ssh или фтп, а в таких условиях сколько не пытался себя уговорить PhpStorm запускать — не смог. Слишком уж много времени тратиться на борьбу с фичами, которые все равно в этих условиях не заработают. Ну и мелочи типа отсутствия встроенного хелпа с пхп функциями, откуда что-то по быстрому скопипастить можно тоже чутка напрягает.
jonic
14.07.2016 21:26+11Мне кажется PHPStorm не для Вас
AleksDesker
14.07.2016 21:34В текущем состоянии да, хотя шаги сделаны были, прямой доступ к удаленным файлам и keep-alive фича, позволившая достаточно шустро обновлять удаленные файлы заставили меня сделать вторую попытку не так давно. Проблема в том, что для описанных условий ничего не подходит, кроме древнего Zend Development Enviroment 5.5 и я все еще поглядываю на PHPStorm, в надежде что там появиться какой-то отдельный минимизированный воркспейс и получиться среда в которой одновременно можно и солидный проект запилить и десяток мелких правок на разных серверах проделать быстро.
khrisanfov
14.07.2016 23:28+2Представляю с какими проектами вы работаете, в которых правка по FTP на проде это норма… Сам сейчас фрилансер, но до такого не опускаюсь, даже если клиент не против правок на проде всё-равно разворачиваю проект у себя, благо это занимает 15 минут при использовании Vargrant. Когда работа завершена и протестирована локально, можно залить правки с использованием «Upload to...» в PhpStorm'е, если клиент не знает что такое Git.
AleksDesker
14.07.2016 23:36-3Как правило это не прод, а dev сервер. Git это must-have для командной разработки, когда пилишь в одно лицо, по ходу помогая клиенту понять что же он хочет — наиболее эффективный путь это как раз дев сервер прямым доступом, когда клиент пишет что надо поправить и пока он пишет вторую строку ты уже сделал правки и просишь его глянуть на url- толи он имел в виду. Пускай это не частый сценарий, но в двух ide работать тоже не практично, хоткеи на уровне рефлексов лучше действуют когда в одной сидишь.
khrisanfov
14.07.2016 23:44+6Git хорош и при одном разработчике, тем более если они часто меняются, как в случае фриланса. История проекта под рукой, каждая правка документируется комментарием, нет помойки на сервере, быстрый откат к предыдущей версии если обнаружился баг. Показать клиенту результат работы, кстати, можно и на своем компьютере при желании, ну или «Upload to...» в крайнем случае.
AleksDesker
14.07.2016 23:59-3У меня часто меняются проекты, разработчик, то есть я — остаюсь :) Я тоже раньше с локальным серваком работал, но у меня винда стоит, точно такое же окружение уже не сделать. Да и в целом как-то стало проще на каком-нибудь digitalocean хранить пяток снапшотов, денег за это не берут, поднимаются они при необходимости за минуту… просто нужна IDE которая тоже сможет за минуту старый проект натянуть на новый удаленный сервак или вообще без создания проекта поправить что надо.
aezhko
15.07.2016 11:26+5Ух, я-то думал, что практика редактирования файлов по фтп изжила себя где-то в 2007ом…
la0
14.07.2016 20:29+1Одно из худших (с т.з. стабильности) обновлений.
Все 2016.1+ при непонятных условиях(нет background tasks и чего-то подобного, отключены все плагины, IDE просто открыта) начинают просто съедать процессор. Помучился помучился и откатился на 9-10 версии.
Честно говоря, со стабильностью уже примерно год от версии к версии то появляются то исчезают подобные чудеса. Хочется уже найти стабильную fallback версию и остаться на ней и параллельно смотреть альтернативы…gibson_dev
14.07.2016 20:53+3Не закрываю IDE по 2-3 недели — полет нормальный, открыто 5 проектов в одной IDE, объема кода — мегабайт под 80-100 и в общем то никаких проблем не испытваю
Akuma
14.07.2016 21:14+1Аналогично, правда не всегда.
Иногда все летает, но открываешь какой-нибудь маленький JS/JSX файл и начинается… иногда даже проще перезапустить IDE, чем мириться с лагами. Причем закономерности файл-лаги нет.
Toledo
14.07.2016 23:28+1Аналогично, периодически съедает почти весь процессорный ресурс (бывает, что и все 6 ядер). При этом фоновых задач нет. Бывает просто при добавлении небольшого файла к проекту «уходит в ступор»…
Справедливости ради следует сказать, что проект немаленький (разработка модификаций для LMS Moodle), но раньше определенно меньше съедало ресурсов процессора, при этом по потреблению памяти замечаний нет.
akuchkovsky
15.07.2016 14:25+1У меня с 9-й совсем все плохо стало, 8-я версия у меня лучше и стабильнее всего работала, саппорт проблемы не нашел, все снэпшоты отправлял, сейчас помогает только добавление памяти в PhpStorm.exe.vmoptions
Toledo
15.07.2016 22:00Спасибо за подсказку, попробую у себя. Только скажите, на x64 переходили, или установили максимум в 800 МБ?
akuchkovsky
15.07.2016 22:11x64 в прошлом году пробовал, не запускалась даже, все по умолчанию сейчас x32
Вот этот файл
c:\Program Files (x86)\JetBrains\PhpStorm 2016.1\bin\PhpStorm.exe.vmoptions
Вот такое значение Xmx
-Xmx1000m
Если не будет запускаться, уменьшайте по 100M пока не запустится, бывает при 1024m уже не запускается.
vshemarov
14.07.2016 21:07Также улучшения коснулись .phpstorm.meta.php.
А какие именно изменения в .phpstorm.meta.php? На сайте что-то не нашел.
Вообще очень сильная фича, но не хватает в ней одной малости — регэкспов. Чтоб можно было параметр не просто строкой задать, а регулярным выражением с подстановкой в результате. Вот это была бы вообще убойная вещь!Yoskaldyr
14.07.2016 23:29DynamicReturnTypePlugin умеет не только регэкспы, но и больше.
plugins.jetbrains.com/plugin/7251
3y3ik
14.07.2016 23:29все круто, все нравится.
спасибо за апдейт, но есть маленький баг, который раздражает последние несколько аптейтов, а именно, когда развернул себе дерево проекта, скрываешь вкладку Project, потом снова ее открываешь, то все папки уже не развернутые. приходится заново лазить по папкам и искать нужные файлы…artspb
15.07.2016 00:09Так не должно быть, у меня дерево проекта переживает не только закрытие Project, но и перезапуск IDE. Если стабильно воспроизводится и переустановка не помогает, ждем в трекере. Кстати, последние файлы всегда можно найти с помощью Ctrl + E, любые файлы — Ctrl + Shift + N ну или Shift два раза.
3y3ik
15.07.2016 00:48перезапуск IDE у меня тоже переживает, только если не сворачивать (Alt + 1) окно Project.
если я это сделаю, и немного задержусь в файле, полажу в браузере и т.п., тогда при открытие Project окна, все пропадает.
NosFire
15.07.2016 12:20+1А мне эта баг-фича нравится. Когда большой проект и слишком большое дерево, я сворачиваю корень, после если надо «scroll from source» разворачиваю нужное дерево
dmz9
17.07.2016 13:03иногда надоедает месиво вкладок, просто зажимаю ctrl+W. потом
ctrl+E — открыть последний файл. если сразу же начать печатать название файла или расширение, список будет фильтроваться. потом сразу enter.
alt+F1, 1 — эта последовательность разворачивает дерево до файла, в котором сейчас фокус редактора
на открытие и разворачивание дерева до последнего редактируемого и закрытого файла уходит примерно секунда
skobkin
18.07.2016 05:16Так не должно быть, да. Но мне, подписанному на этот тикет с приоритетом Major, с начала года приходят мольбы пользователей, которым это тоже ломает работу. Если мне не изменяет память, это появилось в первой версии 2016 и до сих пор не исправлено. Дико бесит. Приходится держать панель проекта постоянно открытой чтобы дерево не сворачивалось.
artspb
18.07.2016 08:34Мне жаль, постараемся пофиксить в 2016.3 (как следует из комментариев к issue). Пока можно попробовать альтернативные способы навигации, предложенные выше — возможно, они окажутся удобнее.
symbix
18.07.2016 14:49Лично мне этот баг не мешает- я дерево редко закрываю и для перехода в него пользуюсь Select Target -> Project View (hotkey на select target и ентер). Но уже который год наблюдаю игнорирование major багов в пользу «продающих» микрофич, которые можно включить в описание релиза. В комбинации с навязанным переходом на подписку с августа это заставляет задуматься об альтернативах.
artspb
18.07.2016 15:04На подписку, в числе прочего, перешли для того, чтобы не думать над тем, что будет красивее смотреться в релизе, а решать актуальные проблемы. Не думаю, что это изменение само по себе может позволить меньше чем за год кардинально исправить ситуацию к лучшему. Но тенденция есть, движение в этом направлении определенно видно. Так что я бы пока не стал торопиться с выводами, все-таки 2 ноября было не так давно.
symbix
18.07.2016 15:14К сожалению, пока что со стороны это выглядит как просто желание «доить» подпиской старых пользователей, которые привыкли и потерпят, и продолжать клепать хорошо выглядящие, но малополезные фичи для привлечения новых пользователей.
Например (это, правда, до подписок было), фикса WI-17801 (со статусом Critical!) пришлось ждать больше года, и его пофиксили только потому, что один из пользователей оставил в комментариях такой пример, по которому фикс был очевиден. Сам собой напрашивается вывод, что потратить несколько часов на исследование причин бага — даже со статусом Critical — у разработчиков просто нет времени, надо выполнять план по списку фич, спущенных маркетологами.
Тенденцию вроде бы наблюдал, но вот этот баг заставил задуматься.artspb
18.07.2016 16:52Ну, убеждать человека в обратном, если у него уже есть свое стройное объяснение происходящему, это всего дело неблагодарное. Скажу лишь только, что у нас нет маркетологов, которые бы составляли «план по списку фич». Вообще, внутренняя кухня JB сильно отличается от среднего по отросли, здесь можно найти немного инсайда, если интересно.
symbix
19.07.2016 02:27Никаких стройных объяснений, простые предположения. Основанные на «среднем по отрасли», да.
На самом деле, подписку в любом случае куплю, потому что деваться некуда, все альтернативы намного хуже. Но очень хотелось бы, чтобы критичные баги не висели по году :)
MGames
14.07.2016 23:29О да, теперь я могу ставить картиночку в бэкграунд редактора! Сколько я этого ждал!
На винде вкладки терминала невозможно переименовать, так как после двойного клика через секунду слетает фокус. Поле «working directory» в ssh external tools самостоятельно меняет слэши с юниксовых на виндовые, из-за чего тулзами невозможно пользоваться…
… но зато можно менять фон — браво!MGames
15.07.2016 00:00Хм, кажется я малость погорячился насчёт external tools. Слеши меняются, но работоспособность сохраняется.
А не работало из-за того, что параметры команде я передавал прямо в поле «program». Интересно, что версия для мака нормально переваривает эти параметры
Budyaga
14.07.2016 23:47Спасибо за проделанную работу. Скажите, есть ли возможность настроить «Xdebug по требованию» в Docker-контейнере, запущенном в docker-machine?
CrazyLazy
15.07.2016 10:47Хм… Насколько мне известно «Xdebug по требованию» работает только с «PHP Script» конфигурациями: то-есть при запуске PHP скриптов в CLI режиме (будь-то локально или удаленно через SSH) так как эта «инструкция» передается дополнительным параметром напрямую PHP интерпретатору. Если Вы можете его (PHP интерпретатор в PhpStorm) настроить для Вашего Docker-контейнера… тогда и тут должно сработать. Но, насколько мне известно, Docker работает по другому…
samizdam
14.07.2016 23:57До обновления была возможность создать Empty Project. Теперь вижу только шаблоны, которые требуют времени на загрузку всякого добра, которое все равно приходится потом удалять…
Andchir
15.07.2016 00:49https://www.jetbrains.com/help/phpstorm/2016.2/system-requirements.html
По-моему требования к системе у вас занижены. У меня на ноутбуке 6 ГБ памяти и даже этого бывает мало (на 4-х вообще был ад). Надо учитывать, что кроме PhpStorm у любого программиста запущены другие программы, например, браузер, скайп… У меня Линукс, если что.symbix
15.07.2016 15:29Понятно, что имеется ввиду свободная память. На машине разработчика может и 16 гигов быть занято спокойно (пачкой vagrant-боксов, скажем).
Andchir
17.07.2016 13:10Для вас понятно, а для начинающего PHP-разработчика совсем не понятно. Он привык в тому, как пишут системные требования к игрушкам. Там, если написано «рекомендуется» — значит должно хватить по-любому. Конечно, у игр своя специфика, но эту специфику должен учитывать тот кто пишет системные требования к программам. Надо добавлять уточнение «свободной памяти».
Ну и хорошо бы отслеживать расход памяти и информировать пользователя, а не просто зависать наглухо.Andchir
17.07.2016 13:20На машине разработчика может и 16 гигов быть занято спокойно (пачкой vagrant-боксов, скажем)
Я имел ввиду только самое необходимое для рядового разработчика (браузер, мессенджер). Если я не использую всяких там «vagrant-боксов», то мне должно хватать памяти.
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 все равно лечит действительно неиспользуемые импорты), но неприятно. :)SerafimArts
15.07.2016 03:39Тоже самое творится и, например, с доктриноскими аннотациями:
use Blabla\Any; // Пишет что неиспользуется и удаляет /** * @Orm\Entity(repository=Any::class) */ class Some { }
artspb
15.07.2016 07:20У меня не воспроизводится. Есть минимальный пример, на котором 100% работает неправильно?
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», но скорее всего уже другое число.
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). Разработчики даже не чешутся.
lleo_aha
15.07.2016 08:45+1А ещё с перетаскиванием картинки в html пример достаточно странный — зачем оно самозакрывающийся тег вставляет при условии что документ — html5?
Andchir
15.07.2016 10:43В HTML5 допускаются оба варианта, с закрытием и без. Видимо разработчики посчитали, что первый более универсальный.
sefus
15.07.2016 11:22+1Уже сколько версий прогресс бар загрузки модулей на сплэш-скрине начинается с отступом от левого края, а заканчивается в упор к правому. В чем тайный смысл сего несимметричного дизайна?
noway
15.07.2016 11:26По дури перешел на macOs Sierra и в нем не работает ни новый, ни предыдущий шторм. Отправил баг. Пока поставил старый шторм (10.0.4) который и работает шустрее и не вылетает каждые 5 мин. Да и шрифт оказыватеся в нем был приятнее
VictoRD11
15.07.2016 12:20Баг с Remote Host FTP — когда не доступен FTP сервер, зависает весь PhpStorm под MacOs El Capitan нужно принудительно завершать
dizzy7
15.07.2016 12:20Возможно ли реализовать включение/выключение xdebug для web-окружения? Например прописать вызов определенного скрипта при включении/выключении «Listening for PHP debug connections»
artspb
22.07.2016 15:06Если речь идет о «PhpStorm позволяет включать Xdebug только по требованию», то пока такой возможности нет, т.к. web server нужно перезагружать при изменении php конфигурации. Если Вы знаете инструментарий web server'а, который позволяет это сделать, то ждем feature request в нашем трекере.
AlexKeller
15.07.2016 13:00-1Единственная вещь, которая не просто неудобна в шторме, а ужасно бесит — это «забывание» того, что я переключил раскладку клавиатуры. Т.е. нажимаю Ctrl+Shift+N, начинаю печатать имя файла, понимаю, что печатаю на русском, переключаю язык, выбираю файл или закрываю окно — язык снова русский. И беда эта тянется, как бы не соврать, аж с 3-й (!) версии, ну или где-то в тех краях. И воспроизводится в любых окнах — поиск файла, просто поиск, окно коммита и т.д.
Может быть это когда-нибудь исправлено?CrazyLazy
15.07.2016 13:51+1Пишут что это проблема Windows и в 10-ке должно уже быть пофиксено: https://youtrack.jetbrains.com/issue/IDEABKL-6290 (и поэтому тикет в IDEBKL (backlog) проекте).
Пройдитесь по комментариям — там много разных «решений» и предложений.
Fedot
15.07.2016 14:10Это не проблема IDE, это лечиться настройками DE (Desktop Environment).
Вангую что у вас выставлена раскладка на каждое окно. Можно выставить например на приложение или глобально, и проблема уйдёт.AlexKeller
15.07.2016 15:39Почему-то в том же Sublime такой проблемы нету
Fedot
15.07.2016 19:38Это может быть обусловлено тем что sublime создаёт всплывающие окна иными средствами, и DE не считает их окнами. По типу того как можно просто нарисовать html окно.
Oldron
16.07.2016 14:06Нет. Это именно проблема IDE. Редактор запоминает раскладку и восстанавливает её после переключения в других приложениях, даже после переключения в диалогах самой IDE.
Win 10. Единая раскладка для всех приложений.symbix
16.07.2016 18:45Это может быть проблемой JRE. В OS X и Linux можно переключаться между системной и поставляемой с PhpStorm, наверное, и в Windows тоже так можно — это не решит проблему?
Oldron
17.07.2016 05:36Выставил путь до внутренней JRE в WEBIDE_JDK. Запустил из bat. Результат тот же, восстанавливается последняя ипользуемая раскладка в редакторе.
reactoranime
15.07.2016 14:26Или я избранный или что-то не так с обновлением, в этой версии совершенно перестал работать debug / debug listening, а именно совершенно не ловит сессию, php5.6+with xdebug enabled, Запускаю через php -S domain.dev:80.
reactoranime
15.07.2016 16:20Пардон разобрался xdebug.remote_enable = 1 надо выставлять в настройках php.ini. не помню надо ли такое раньше выставлять
AsidStorm
15.07.2016 14:26Установлен PhpStorm 2016.1, при вводе конструкции вида
И нажатии Enter, PhpStorm переходит на новую строку и ещё 1 строку рисует после неё, так и не смог найти настройку, которая за это отвечает, может быть кто-то знает?AsidStorm
15.07.2016 15:25+1Скушался код.
Имелось ввиду после закрывающего PHP тега.CrazyLazy
15.07.2016 15:34Может быть это? Settings/Preferences | Editor | General --> Ensure line feed at file end on Save
AsidStorm
15.07.2016 15:40К сожалению, нет, галочка не установлена. (Впрочем, если её включить — на данный кейс не реагирует)
CrazyLazy
15.07.2016 16:47Попробуйте тогда сбросить настройки форматирования (Code Style) — используйте Default. Также, как вариант, может в проекте есть .editorconfig файлы и используется EditorConfig плагин? Других идей (кроме как отключение всех сторонних (не установленных по умолчанию) плагинов или удаления всех настроек (что бы посмотреть — а поможет ли)) пока не наблюдается…
Кстати, эта «дополнительная строка» — такое поведение только в конце файла или в средине тоже?AsidStorm
16.07.2016 13:03+1Сброс настроек к дефолтным не помог. Отключение всех плагинов — как только плагин PHP активен, сразу же появляется ошибка.
Такое поведение именно в конце файла.
Интересно, останется ли ссылка в комментарии: http://imgur.com/VZk57AW
cold147
15.07.2016 16:46Раньше когда нажимал двойной шифт, ИДЕ перехватил выделенный текст, сейчас перестал.
Это настраивается или баг?CrazyLazy
15.07.2016 17:08+1Тут попросили это отключить: https://youtrack.jetbrains.com/issue/IDEA-147128…
А тут спрашивают обратно это все включить: https://youtrack.jetbrains.com/issue/IDEA-157100…cold147
15.07.2016 17:18Спасибо за ссылки, проголосовал, надеюсь вернут все как было, или сделают опцией
vshemarov
18.07.2016 11:01Заметил мелкий, но неприятный баг в последней версии: я, как правило, всем проектам задаю имя, и раньше в списке недавно использованных проектов высвечивались именно эти, заданные вручную, имена. А сейчас высвечиваются либо полные пути, либо имя папки. Кому как, но для меня это жутко неудобно
3y3ik
18.07.2016 11:58У меня вопрос, может кто-то подскажет
Я работаю на сервере через sftp
Когда я выбираю Deployment — Download from Server файлы загружаться на компьютер, все ок. Но если, я после этого изменю один файл и сохраню изменения, то на сервер отправляются все файлы, которые перед этим были скачаны.
В чем проблема, почему так происходит?
СпасибоLene
22.07.2016 14:36+1А какие у вас настройки в Options | Deployment | Overwrite up-to-date files? Возможно ли, что эти файлы все же были чем-то изменены (повторная транспиляция, и т.п.)? Также было бы замечательно, если бы вы завели тикет на YouTrack, и мы продолжили бы обсуждение там.
3y3ik
22.07.2016 14:47Это не баг скорей. У меня была выставлена данная галочка и Preserve files timestamps. Это происходило из-за них
Lene
22.07.2016 14:51Preserve file timestamps просто изменяет таймстемп отдельной командой, так что скорее из-за первой настройки.
3y3ik
22.07.2016 15:28Странно. Файлы на сервере точно не были изменены. При включённой Preserve files timestamps происходила перезаливка файлов
По этому пришлось убирать 2 галочки
Set0r
19.07.2016 22:02Перестал работать автокомплит статических методов, которые вызываются динамически.
Например, в PHPUnit метод assertEquals() объявлен статически, но обычно его вызывают как $this->assertEquals() соответственно в автодополнении для $this->assert… осталось лишь 4 метода. Можно отключить эту фичу в настройках?CrazyLazy
20.07.2016 02:45Нажмите Ctrl+Space еще раз чтобы показать все методы (https://youtrack.jetbrains.com/issue/WI-32493).
По другому пока никак: https://youtrack.jetbrains.com/issue/WI-32530
akuchkovsky
20.07.2016 23:58К сожалению, 2016.2 настолько глючный релиз, что откатился к 10-версии, с файлами вне проекта печаль, памяти стал жрать еще больше, анализатор кода работает с ошибками, на все методы и функции в многострочных комментариях выдает, мол, синтаксическая ошибка, автокомплит работает как-то иначе, глючит непонятно, пользоваться невозможно, новых функций с каждым релизом все больше, а толку от этого ноль, проблем создаете еще больше, может все же лучше и подольше тестировать беты? К чему такая спешка?
symbix
21.07.2016 18:07проблемный, да, но вроде не настолько плохо, invalidate caches пробовали?
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"
symbix
21.07.2016 19:18Хаха, забавно, очевидно, это сломали при добавлении поддержки 7-ки. Типа, пхпшный resource. Был бы class String, в 7-ке бы сломалось. Перестарались чуток :)
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
(это не те дроидеки, что вы ищите...). =)artspb
21.07.2016 20:01Что-то не воспроизводится. Плагины?
SerafimArts
21.07.2016 20:22Упс, мой косячок.
Это "EA Extended" плагин расширенного анализа кода такое "диковатое" сообщение выдаёт, вместо более вменяемого
Loop does not contain a body
, например.
DaHacka
22.07.2016 08:28После апдейта отвалилось «Create New Project from Existing Files», если указывать в качестве источника sftp. Сначала думал что проблема в бета-версии mac os, откатился на El Capitan и переустановил phpstorm «с нуля» — проблема не решилась. Создается директория, файлы скачиваются, но после этого сам проект не создается, просто остается окно приветствия.
SerafimArts
Что-то странное с автокомплитом случилось, пишешь, например:
\Invali
и он отображает все возможныеInvalidArgumentException
в автокомплите из проекта, кроме SPL, который нужен (рутовый неймспейс как бы намекает). Что самое удивительное, если тыкнуть на Enter, выделив, например симфонийский какой-нибудь — он его не добавляет, а просто автокомплитит рутовым SPL.Так и задумано?
Evgeny42
JetBrains каждый релиз меняют алгоритмы автокомплита. Кажется что уже привык после последнего апдейта, а потом выходит новая версия. Поэтому пока что не сильно спешу обновляться с 9ой версии.
Fesor
Да не меняют они поведение автокомплита. Оно просто дополняется. Вот серьезно, сижу на шторме уже года 4 и как-то изменения меня не парят.
Fesor
Ну вообще-то это поведение уже давно. Можно воспринимать как баго-фичу.
SerafimArts
В 2016.1.* (что там было последнее?) такого не было. Разве что галочкой там как-то конфижилось вроде как.
Fesor
ну у меня так уже давно)
symbix
У меня в 2016.1 было так же, как и сейчас: SPL-ный есть, но далеко внизу.
Тыкнуть на Enter на «не том» не пробовал, спасибо, это более-менее решает проблему.
artspb
Это баг, поправим, спасибо.
artspb
Отслеживать можно здесь.