Спешу сообщить о свежем релизе PhpStorm 9 — новой версии IDE для разработки на PHP от JetBrains.
Прогресс не заставит себя ждать, ведь в PhpStorm 9 мы улучшили возможности для редактирования кода и отладки, углубили понимание кода, реализовали дополнительные средства повышения продуктивности, а также довели до конца поддержку удаленной разработки.
Работа с языком PHP и редактор
Глубокое понимание кода
Все подсистемы, связанные с PHP, были обновлены в данной версии. Самые важные улучшения включают:
- Рефакторинг Introduce Parameter
- Расширенное выведение типов PHP
- Поддержка постоянных языковых вставок
- Новые инспекции и intention actions
Postfix Code Completion для PHP
В PhpStorm 9 мы добавили постфиксное автодополнение кода. С его помощью вы можете заменять одно выражение (которое вы уже ввели) на другое в зависимости от добавляемого постфикса. Функция полезна именно в том случае, если вы уже что-то ввели и теперь хотели бы изменить это выражение, не возвращаясь и не изменяя код.
Например, если к логическому выражению добавить постфикс “.if”, то оно автоматически будет обернуто оператором ветвления if, и курсор переместится в тело оператора.
Таким образом postfix completion экономит массу времени на перемещение курсора в обратном направлении.
Частичная поддержка PHP 7
Релиз PHP 7 уже не за горами, поэтому мы добавили частичную поддержку PHP 7 на уровне выбора языковой версии и соответствующего PHP интерпретатора, а также поддержку return type hints.
Таким образом, добавленная поддержка позволяет использовать PHP 7 в новых проектах уже сейчас (до поддержки PHP 7 использование return type hints вызывало ошибки и красный код в IDE). Полная поддержка PHP 7 в PhpStorm ожидается в ближайшее время.
Более удобная отладка
Inline Debugger для PHP
Благодаря Inline Debugger все данные о переменных, полученные от отладчика, отображаются прямо в редакторе. Таким образом, все значения переменных плавно интегрированы в интерфейс редактора.
С применением Inline Debugger значения переменных можно увидеть прямо в исходном коде, рядом с их использованиями, что сильно упрощает процесс отладки. Не нужно ни наводить мышку на переменную, ни переключаться в панель переменных в окне отладчика!
Процесс отладки
Процесс отладки становится еще более простым и безболезненным с этим релизом. Настройка самого окружения PHP раньше превращалась в большую проблему. Мы уверены, что новые функции помогут преодолеть эти препятствия благодаря:
- улучшенной валидации конфигурации отладчика;
- открытию соответствующего php.ini для редактирования из настроек;
- импорту настроек сервера из настроек развертывания;
- и многим другие улучшениям.
Удаленная разработка
Remote Edit
В версии 9 добавлена одна из самых востребованных функций в истории PhpStorm — удаленное редактирование (Remote Edit). Открывайте одиночные файлы напрямую с удаленного сервера (FTP, SFTP, FTPS и т. д.) и редактируйте их в IDE без сохранения/загрузки в локальный проект.
Чтобы начать редактирование файла с удаленного сервера, просто выберите Edit Remote File в контекстном меню или дважды щелкните файл.
Запуск удаленных инструментов через удаленный PHP интерпретатор
Поддержка удаленных PHP интерпретаторов (появилась в PhpStorm 8) позволяет запускать приложения и инструменты в окружении, схожем с production окружением. Вы можете легко использовать виртуализированное окружение, запущенное с помощью Vagrant, совместно со всеми инструментами. В PhpStorm 9 так называемая удаленная разработка становится реальностью благодаря поддерже запуска PHP Code Sniffer и Mess Detector через удаленные PHP интерпретаторы.
Улучшения во взаимодействии с фреймворками и сторонними инструментами
В дополнение к нашим усилиям по поддержке последних технологий и инструментов, экосистема сторонних плагинов для PhpStorm стабильно развивается. Загляните в репозиторий плагинов — там появилось много плагинов для различных фреймворков и инструментов.
Инструменты для фронтэнд-разработки
PhpStorm включает в себя все функции WebStorm (включая все функции версии WebStorm 10, некоторые в виде бесплатных плагинов).
В PhpStorm 9 полностью переработана поддержка JavaScript и добавлена поддержка следующих веб-технологий:
- диаграммы зависимостей приложения;
- трассировка языков, транспилируемых в JavaScript;
- профилирование приложений Node.js с использованием V8;
- одновременное редактирование тегов:
Платформа IntelliJ
Этот релиз заимствует немало функций и возможностей от IntelliJ Platform:
- режим Distraction Free Mode:
- средство просмотра различий с режимом одностороннего просмотра:
- улучшения в интеграции с системами контроля версий;
- обновленные инструменты работы с базой данных;
- поддержка HiDPI для Windows и Linux;
- обновленный вид вкладок редактора, и многое другое.
Где почитать подробнее?
Дополнительную информацию о PhpStorm 9 вы можете найти на других наших ресурсах. Или можно посмотреть короткое видео:
В нашем англоязычном блоге и в разделе туториалов собраны материалы по большинству описанных в данном посте фичам (и многим другим). Кроме того, вам может быть интересно посетить вебинар с нашим Product Marketing Manager Михаилом Винком 22 июля — зарегистрироваться можно здесь.
Что дальше?
Качайте бесплатную 30-дневную пробную версию PhpStorm 9 на странице продукта, где также есть еще больше подробностей о новой версии.
Обновление до версии 9 бесплатно для всех, кто приобрел лицензию после 8 июля 2014 года.
Замечания и предложения по новой версии мы будем очень рады увидеть в нашем баг-трекере или в комментариях здесь на хабре.
И, конечно же, подписывайтесь на твиттер PhpStorm, чтобы всегда быть в курсе наших новостей!
Программируйте с удовольствием!
— Команда JetBrains PhpStorm
Комментарии (92)
SerafimArts
08.07.2015 16:32+3Подскажите пожалуйста, когда ожидается полная поддержка php 7, достаточно примерного времени по планам — в мажорном билде ~10 или каком-нибудь из ~9.1?
Например не хватает контекстно-зависимых ключевых слов, они есть как в php 7, так и в jphp 0.7+, но из-за отсутствия их поддержки — пользоваться ими не представляется возможным.
Так же интересует поддержка встроенного в php дебаггера (phpdbg), который в ядре уже почти год. По роадмапу там стоит вопросик, но каково реальное положение дел? Вообще планируется или продолжите диалог с разработчиками, чтоб они заюзали dbgp?
З.Ы. Спасибо за незаменимый продукт! =)Kootli
08.07.2015 18:19+1Пока точно неизвестно, но мы уже в процессе (как можно заметить по релизу), голосуйте за youtrack.jetbrains.com/issue/WI-27468. По количеству голосов можно понять, насколько эта фича важна для PHP сообщества.
SerafimArts
08.07.2015 22:09Спасибо, а что по поводу phpdbg?
Kootli
09.07.2015 14:37Тоже есть тикет, но пока phpdbg недостаточно хорошо работает сам по себе (по сравнению с xDebug и Zend Debugger).
youtrack.jetbrains.com/issue/WI-21414
Yeah
08.07.2015 16:35+4Code Complition по Ctrl+J (как советуют в блоге) почему-то в файле PHP показывает подсказки для Bootstrap:
gibson_dev
08.07.2015 17:03А почему нет? Ведь в PHP файле вполне может быть html
helarqjsc
08.07.2015 21:51+3Но это даже не строка. В какой ситуации после
$data['images']
может идти кусок html/css кода?
Kootli
08.07.2015 18:25+2Bootstrap плагин, к сожалению, не продукт JetBrains, попробуйте обратиться к его автору за разъяснением: plugins.jetbrains.com/plugin/7390?pr=phpStorm.
Boctopr
08.07.2015 16:53Пожалуйста подскажите, как по кнопке «точка» раскрывать указатель "->" например «this.» должно раскрыться в «this->». Qt creator такая возможность реализована отлично.
Kootli
08.07.2015 18:15+1Пока такой возможности нет. Голосуйте, пожалуйста, за youtrack.jetbrains.com/issue/WI-551
skiedr
08.07.2015 17:59+2А почему нельзя создать свои правила для Postfix Code Completion?
prigara
08.07.2015 18:01+1Пока нельзя. Голосуйте, пожалуйста, за реквест: youtrack.jetbrains.com/issue/IDEA-122443
Yeah
08.07.2015 23:46А толку? Сколько уже людей за codeception support проголосовали, а воз и ныне там.
aivus
08.07.2015 18:15+1Использую фичу annotate для файла, но теперь, как я понимаю, там не отображаются некоторые изменения.
В моем случае: поменял в csv файле все строчки (убрал лишний пробел в середине строки).
Коммичу, но в annotate не отображается этот коммит. Это ок?
nxn
08.07.2015 18:18+1Все очень круто, спасибо, но не могу слезть с семёрки, новый Шторм недостаточно быстрый даже для моего современного ноута. Пока сидел на eap, испытывал одно раздражение. Может проблема в богомерзкой yosemite? Хотя я качал соответствующий релиз под неё.
Kootli
08.07.2015 18:20+1А вы пробовали версию со встроенной JDK (специально для Yosemite)?
nxn
08.07.2015 18:22+1> Хотя я качал соответствующий релиз под неё.
я это и имел в видуKootli
08.07.2015 18:25+1А без неё пробовали? Если пробовали, то с какой версией Java?
nxn
08.07.2015 18:33+1А без неё мне и в голову не приходило скачивать обычный дистрибутив, когда написано, что для таких как я есть особенный пакадж :)
Что до явы, которая у меня установлена отдельно, то вот:
$ /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
Надо сказать, семерка тоже шалит под ней. Например, новые окна проектов открываются в максимально сжатом виде, видны только три контрола по изменению их границ.Kootli
08.07.2015 18:38+1Попробуйте без встроенный Java и пропишите свою 1.7, как вот тут описано: intellij-support.jetbrains.com/hc/en-us/articles/206827547-Selecting-the-JDK-version-the-IDE-will-run-under?
nxn
08.07.2015 18:42+1Уже пользовался этой статьёй, через правку plist Шторм после вообще не запускается :)
Kootli
08.07.2015 19:02+1Если есть возможность, попробуйте, пожалуйста, 1.6 версию.
nxn
08.07.2015 19:10+1Отпишусь через пару недель, сейчас не могу сказать лучше/хуже. :)
Подправьте документацию немного. Если я в шелле устанавливаю переменную IDEA_JDK с путём до JDK, то на неё Шторм не реагирует, зато работает PHPSTORM_JDKKootli
08.07.2015 19:59+1Спасибо, сейчас переадресую информацию.
Отписывайтесь через пару недель в intellij-support.jetbrains.com/anonymous_requests/new, новые тикеты проверять легче. :)
nazarpc
08.07.2015 19:01+2Уже второй точно, может третий релиз прошу поправить баг с поддержкой трейтов, PHP 5.4 всё-таки!
И PhpDoc для методов до сих пор не исправили.
Куча новых фич, и всё те же баги, что и год назад…Kootli
08.07.2015 19:58+1Вы говорите про youtrack.jetbrains.com/issue/WI-16368?
nazarpc
08.07.2015 20:08+2Нет, о youtrack.jetbrains.com/issue/WI-17671
Он Major, заведен ещё на 7.х, но исправления нет, это создает мне сложности каждый день.
nazarpc
08.07.2015 20:14+2По поводу второго: youtrack.jetbrains.com/issue/WI-18194
Critical, со времен 6.х, в последнее время после уточнения типов просто ужасно мешает, ещё больше чем баг с трейтами, потому что для того хоть обходные пути есть.
MTonly
08.07.2015 19:06+1Поддержка HiDPI — это хорошо. Но пока неидеально:
1. Размер шрифта, ранее указанный в поле Size в окне «File > Settings > Editor > Colors & Fonts > Font», при последующем открытии этого окна ошибочно удваивается (при системном масштабе 200%; видимо, умножается на коэффициент, зависящий от системного значения DPI).
2. Текст совета при запуске отображается очень мелко — видимо, без учёта реальной плотности точек.Kootli
08.07.2015 19:10+1Есть такие баги, к сожалению: youtrack.jetbrains.com/issue/IDEA-140901, youtrack.jetbrains.com/issue/IDEA-138239.
KAndy
08.07.2015 19:14+2Большое спасибо за «Поддержка удаленных PHP интерпретаторов». Незаменимая фича при работе с vagrant
Rathil
08.07.2015 19:48Скажу глупость, но не могу удержаться: а будет ли возможность написания плагинов для PhpStorm, на PHP?
symbix
09.07.2015 21:23Можно попробовать на J-PHP
SerafimArts
10.07.2015 02:01У него надо бутстрап подправлять, чтоб нормально вклинить, но да, как вариант, джава бриджи на нём пишутся «на ура».
for93t
08.07.2015 20:07Даже если окно Remote Host открыто, при попытке загрузки файла на удаленный сервер происходит повторная авторизация. В предыдущих версиях этот костыль работал, в 9-ке его зачем-то сломали :( Теперь каждая загрузка файла требует около секунды на авторизацию.
Kootli
08.07.2015 20:54Посмотрите, пожалуйста, совет от пользователя, возможно он сработает: youtrack.jetbrains.com/issue/WI-674#comment=27-993420.
BR0kEN
08.07.2015 20:09Поддержка PHP 7, пока что, оставляет желать лучшего даже на уровне «return type hints». А вот «remote edit» — приятная штука!
СкриншотишкаKootli
08.07.2015 20:52Голосуйте за youtrack.jetbrains.com/issue/WI-27468 (я уже рекламировала эту ссылку, но еще раз не помешает).
unnamed777
08.07.2015 21:11+2Эх, перемещение курсора между открывающим/закрывающим тегами в php-файлах так и не починили, второй год жду youtrack.jetbrains.com/issue/WI-20474.
Попутно ещё что-то ухучшилось в работе с js-файлами. В одном из проектов стадия «syntax analysis» даже после мелкой правки js-файла занимает порядка 12-14 секунд (со взвыванием кулера макабука и обжиганием ног). Тот же файл с тем же конфигом на 8.0.3 — менее двух секунд.
lasc
09.07.2015 05:23А ssh jumphost появился? (про полноценную поддержу .ssh/config уже и не прошу)
Kootli
09.07.2015 14:49Пока нет, вот открытый реквест: youtrack.jetbrains.com/issue/WI-23035
lasc
10.07.2015 00:22Запросу уже много лет, но прогресса как то нет youtrack.jetbrains.com/issue/WI-12463
not_ice
09.07.2015 05:40-7Скриншоты phpstorm из-под Yosemite — это стеб? Он же неюзабелен там совершенно (((
bezumkin
09.07.2015 07:27А я и не знал.
Работал с PhpStorm в Yosemite c бета-версий, сейчас работаю в El Capitan — нареканий почти нет.not_ice
10.07.2015 20:00-1Вы с виндой сравнивали?
Дикий фликеринг на эппловской Яве, бешеные тормоза при скролле текста на штормовской. С большими проектами работать просто невозможно (а для маленьких шторм и не нужен).
Саблайм по сравнению со штормом на йоземите как Феррари в сравнении с жигулем.SerafimArts
10.07.2015 21:47Я конечно всё понимаю, но лично у меня HP Mini тысяч за 20-30, и там вполне себе уживается шторм вместе с запущенным браузером и прочими плюшками. Ничего не тормозит и не глючит (правда индексирует дофига долго), а это нетбук. Фиг знает Laravel 5.1 проект объёмом в 39 метров большой или маленький проект, но могу по крайней мере заверить, что проблема у Вас скорее всего в железе (очень старое и слабое), т.к. судя по заверениям разработчиков (и участников) — это не проблема софта (Макоси\Джавы).
>> Саблайм по сравнению со штормом на йоземите как Феррари в сравнении с жигулем.
Скорее как Боинг по сравнению с велосипедом. Велосипед быстрее на старте всё же. Ну а дальше…
Moldovich
09.07.2015 07:45Как с производительностью для огромных файлов больше 2000 строк? Над некоторыми WP проектами довольно сложно работать в 8-ой было…
Kootli
09.07.2015 14:53Очень сильно зависит от конфигурации (ОС+JDK версия+многое многое другое), если у вас будут какие-либо проблемы, пишите мне в саппорт: intellij-support.jetbrains.com/anonymous_requests/new.
Moldovich
14.07.2015 12:31Может список рабочих связочек ОС+JDK, для Win 8.1x64 (build 9600) имеется?
многое многое другое
даже сложно представить, что же ещё влияет на эти аномальные тормоза, отключил уже все проверки инспекции Spelling и прочее, такое впечатление что на нажатие клавиши он всё равно парсит весь документ, как-бы отключить это а не оптимизировать?
Moldovich
14.07.2015 12:34P.S.
Если что у меня SSD, 8Гигов не самой медленной DDR-3 и A-10 процессор.
AterCattus
14.07.2015 12:15На линухе с oracle java 7 довольно печально, как и в 8. При наборе имени переменной (i5-3470 CPU @ 3.20GHz):
Moldovich
14.07.2015 12:33Вобщем: воз и ныне там. Интересно, помогает, если закомментировать остальной код на время редактирования нужного участка?
AterCattus
14.07.2015 12:49В таком случае скачет 50-90% одного ядра. Но, хотя бы, GUI не виснет, можно нормально набирать.
Мне совершенно не понятно, что там нужно делать такого срочного в фоне, чтобы так тормозить: при вводе простого целого числа (не нужно никаких подсказок выводить) отъедает 60%.nitso
30.07.2015 18:47А не пробовали отключать Inspections в данном файле (мужичок в правом нижнем углу)? Бывает, что файл насыщен трудноперевариваемыми конструкциями, и подвисает проверки синтаксиса и другие Inspections.
AterCattus
30.07.2015 20:03Больше всего помогает «Power Save Mode» — дает почти не тормозящий при вводе интерфейс. Сами инспекции не особо сказываются.
mega
09.07.2015 09:52При дебаге все русские символы стали крякозябрами. Где это можно поправить?
Kootli
09.07.2015 14:53Кажется, это баг, опишите свою ситуацию тут, пожалуйста: youtrack.jetbrains.com/issue/WI-27963
nitso
13.07.2015 22:05Столкнулся с этой же проблемой. Оказалось — в настройках проекта стояла неправильная кодировка. Проверьте для начала :)
pipl
09.07.2015 15:06Пользуясь случаем, хочу спросить, можно ли как-то перенести класс в другой неймспейс так, чтобы это изменение отразилось по всему проекту без ручной правки всех файлов?
Нужно именно перенести один из классов исходного неймспейса в другой неймспейс, а не переименовать исходный неймспейс.
DjOnline
09.07.2015 16:39-2Когда уже почините один из важных багов youtrack.jetbrains.com/issue/WI-20248#tab=Comments?
Невозможно обновить файл хоть на сколько-нибудь траффиковом сайте, если на нём есть smarty и apc, файл ещё не залился, а они уже начинают его парсить и кэшировать, что приводит к падению сайта, нужно это заметить и повторно залить файл.
Причём почему-то в 6.0 это было менее заметно, в 9.0 так вообще почти каждый раз.Kootli
09.07.2015 16:58К сожалению, точных дат нет, но тикет помечен как открытый, значит, девелопер про него знает и пофиксит в соответствии со списком приоритета feature реквестов.
olegkrasnov
09.07.2015 20:38Огромное вам спасибо за такую нужную фичу как «virtual spaces». Без неё умер бы от нервного тика.
olegkrasnov
10.07.2015 02:11Один только минус — в режиме «use soft wraps» вертикальная позиция курсора сбивается на свёрнутых линиях. Вот бы это починить.
Kootli
10.07.2015 22:23Вы можете открыть саппорт тикет с деталями вашего сетапа, пожалуйста, не могу воспроизвести проблему: intellij-support.jetbrains.com/anonymous_requests/new?
Finesse
10.07.2015 12:54Очень не хватает функции запуска/остановки bash-скрипта при открытии/закрытии проекта.
Kootli
10.07.2015 22:27Вам может помочь создание макроса: www.jetbrains.com/phpstorm/help/using-macros-in-the-editor.html
Miklos
10.07.2015 18:31Извините за оффтоп.
Планируется ли добавить в IdeaVim регистр "=, или может быть есть какой-то плагин, который реализует схожий функционал?
vimcasts.org/episodes/simple-calculations-with-vims-expression-registerKootli
10.07.2015 22:25Голосуйте, пожалуйста, за: youtrack.jetbrains.com/issue/VIM-521, youtrack.jetbrains.com/issue/VIM-754.
Set0r
14.07.2015 18:39«а также довели до конца поддержку удаленной разработки»
Ребята, почему вы категорически не хотите сделать keep-alive для ftp/ssh? И зачем вы сломали единственный хак с табом Remote Host (да, я знаю что предлагается заменить один из файлов на старую версию, чего же вы сами его не заменили?)
Я вам плачу уже 5 или 6 лет, за эти годы не добавилось ни одной фичи, которая бы мне реально пригодилась.
youtrack.jetbrains.com/issue/WI-674
6 лет, 244 голоса, 238 комментариев
Ответ Елены, что вы используете для FTP библиотеку, которая не поддерживает keep-alive (когда при открытом табе Remote Host всё отлично поддерживалось, пока вы и это не сломали) — таким ответом вы можете пудрить мозги менеджерам, а не разработчикам.
Каждый деплоймент обходится мне из за подключения в лишних секунд 5-10, поверьте, это пустое ожидание очень напрягает.
Очень надеюсь что вы уже работаете над этим багом, тогда я смогу с чистой совестью называть PHP Storm лучшей IDE и каждый год продливать свою лицензию.symbix
14.07.2015 19:03+1Это, конечно, адский оффтопик, но я бы вам посоветовал освоить специализированные инструменты для деплоймента и закончить мучения. Например, deployer.org.
Set0r
14.07.2015 21:15Скорей всего мы говорим о разных вещах. При чём тут вообще процедура деплоймента? Речь идёт о функции «Automatic Upload» в IDE. Естественно он аплоадит не на продакшен, а на dev-сервер разработчика с определённым окружением. Тем, кто гоняет веб сервер под виндой эта функция не нужна.
SerafimArts
14.07.2015 22:30Под дев окружение деплой точно такой-же — шелл скрипт вида: `git pull origin stage && composer install`.
Фиг знает зачем так извращаться с ftp, ну разве что поддержки гита нет… Правда я таких серверов\хостингов уже сто лет как не видел.Set0r
14.07.2015 22:57Отличный совет — накодил, пушнул и полез смотреть что получилось. Очень продуктивно!
xRay
Починили отладку JavaScript в FireFox?
prigara
Отладка в Firefox теперь работает через конфигурацию Firefox Remote, в посте в блоге WebStorm можно прочитать как ее настроить. В результате изменений на стороне Firefox сделать отладку, как она была раньше — это очень большая задача, которая, если честно, сейчас не стоит в приоритете.