company_banner

Новый PhpStorm 8: развиваемся вместе. Поддержка Blade, Behat, WordPress, удаленных PHP-интерпретаторов и многое другое

    Сегодня мы расскажем о релизе PhpStorm 8 — новой версии IDE для разработки на PHP от JetBrains.

    Как один из ключевых инструментов PHP разработчика, PhpStorm постоянно развивается и оттачивает встроенные инструменты, чтобы пользователи могли следовать последним тенденциям веб-разработок (а иногда и задавать их).

    Релиз PhpStorm 8 упрощает использование многих популярных и активно развивающихся веб-технологий для бэкэнд- и фронтэнд-разработки на протяжении всего жизненного цикла — от прототипирования до развертывания и поддержки.

    Поддержка языка PHP


    Мощь языковых вставок

    Функционал языковых вставок в PHP-литералы был значительно переработан: теперь поддерживаются сложные выражения, включая возможность замены динамических частей на значения.

    Это особенно важно для работы с SQL-запросами в вашем проекте, что приносит значительный рост продуктивности при написании и тестировании запросов к базам данных.

    Следуйте за эволюцией PHP

    Свежий релиз PHP 5.6, ставший стабильным совсем недавно, уже полностью поддержан в PhpStorm, включая возведение в степень, use const, use function, постоянные выражения, variadic functions, распаковку аргументов и многие другие языковые функции.

    Со всеми внедренными языковыми функциями не осталось причин не обновлять ваш проект до последней версии PHP.

    Следование PSR-0/PSR-4 стандартам о корне пространства имен

    Следовать PSR-0/PSR-4 стандартам кода с PhpStorm теперь еще проще благодаря тому, что новая версия включает поддержку исходных и тестовых директорий для PHP (Source & Test directories) с сопоставлением структуры проекта и пространства имен (по стандарту PSR-0); может определять PSR-0 структуру нового проекта, или поддержать структуру при создании нового класса или рефакторингах; а также предоставляет различные инспекции кода.

    Почуствуйте разницу с изменениями в каждой подсистеме

    С каждой новой версией PhpStorm переработке подвергаются многие подсистемы продукта. На этот раз мы рады представить новые intentions (желаемые действия) и инспекции кода, улучшения форматирования, вывода типов (включая вывод, основанный на ArrayAccess/Iterator return type), поддержку Markdown в блоках PHPDoc и понимание унифицированных многоуровневых массивов.

    Фреймворки


    Шаблоны Blade

    Активно развивающийся движок шаблонов Blade (представленный во фреймворке Laravel) полностью поддерживается, включая:
    • подсветку синтаксиса языка Blade в файлах шаблонов;
    • автодополнение директив;
    • внедрение переменных для директив for и foreach;
    • Blade-специфичная навигация по проекту;
    • поиск использований для шаблонов;
    • настраиваемые директивы Blade.


    Разработка для WordPress с помощью PhpStorm


    Мы ввели полную поддержку популярной блог-платформы и CMS WordPress, о чем некоторое время назад уже писали на хабре во время программы раннего доступа. На данный момент поддержка включает:
    • интеграцию PhpStorm с WordPress для существующих проектов и новых плагинов;
    • настройку рабочей среды для разработки под WordPress;
    • настройку стандартов оформления кода WordPress и следование им;
    • поддержку хуков (включая автодополнение для параметров регистрирующих функций; навигацию от функций, регистрирующих хуки, к вызовам хуков и другие функции);
    • поиск документации на WordPress.org прямо из редактора;
    • интеграцию с инструментами командной строки WordPress WP-CLI.



    Другие фреймворки

    Ввиду скорого релиза Drupal 8, мы поддержали последнюю версию на уровне поддержки, сходном с поддержкой Drupal 6/7. А так как Drupal 8 включает компоненты фреймворка Symfony2, дополнительная поддержка данных компонентов обеспечивается плагином с открытым исходным кодом Drupal Symfony2 Bridge.

    Все основные PHP фреймворки поддержаны, так что обязательно попробуйте PhpStorm для работы с вашим любимым фреймворком. Сторонние плагины для дополнительной поддержки фреймворков доступны в нашем репозитории — там, к примеру, есть плагины для Symfony2, Laravel, Magento, CakePHP и др.

    BDD для PHP с Behat


    Следовать парадигме Behavior-Driven Development (BDD) теперь просто, ведь PhpStorm поддерживает Behat — BDD-фреймворк для PHP. Вы можете писать человекопонимаемый код тестов, описывающий поведение (и бизнес-логику) вашего приложения.

    Текущая поддержка Behat включает:
    • помощь в инсталляции и конфигурации Behat;
    • Run Configuration для Behat (аналогично PHPUnit);
    • Behat intellisense (resolve, поиск использований, автодополнение и т. д.).



    Удаленные PHP-интерпретаторы


    Использование удаленного PHP-интерпретатора вместо локального позволит вам запускать приложение или PHP-инструменты в окружении, близком к production, будь то реальный сервер или виртуальная машина, созданная с помощью Vagrant или Doсker. Данный подход позволит вам убедиться, что развертывание приложения на production не принесет неприятных неожиданностей.

    Как только удаленный PHP-интерпретатор настроен (с помощью SSH аутентификационных данных, настроек Vagrant или развертывания), вы можете использовать его для запуска/отладки вашего приложения, а также удаленно запускать инструменты тестирования (такие как PHPUnit и Behat). PhpStorm будет обращаться с данным удаленным интерпретатором примерно так же, как и с локальным.

    Инструменты для фронтэнд-разработки


    PhpStorm включает в себя все функции WebStorm (так что все фичи WebStorm 8 и текущие фичи WebStorm 9 EAP) включены (некоторые в виде бесплатных плагинов). Мы рады представить вам обновленный набор популярных инструментов для веб-разработки:
    • расширенная поддержка AngularJS;
    • spy-js, инструмент трассировки для JavaScript и Node.js;
    • Grunt, средство запуска задач JavaScript;
    • интеграция с PhoneGap/Cordova;
    • Bower, gulp.js, фреймворк тесторования CucumberJS, шаблоны Postfix для JavaScript и др.



    Платформа IntelliJ


    Со стороны платформы IntelliJ, лежащей в основе PhpStorm, также привнесены многие интересные изменения.

    Множественные курсоры и множественное выделение

    PhpStorm 8 включает одну из самых запрашиваемых фич в нашем баг-трекере — множественные курсоры и множественное выделение (Multiple Cursors and Selections).

    Скажем только, что расставить курсоры можно с помощью Alt+Click; добавить следующее совпадение в выделение: Alt+J для Windows и Ctrl-G для Mac; удалить совпадение из выделения: Alt+Shift+J для Windows и Ctrl-Shift-G для Mac; удалить все выделения и курсоры: Esc. А как это работает на практике — вы можете увидеть справа.

    Работа с одиночными файлами без создания проекта

    Быстрые изменения в непроектных файлах должны подразумевать быстрые решения. И хотя всегда можно было добавить любой файл в уже открытый проект, не было одной функции: открытие одиночного файла без создания проекта.

    С PhpStorm 8 быстрые изменения в одиночных файлах возможны: просто откройте любой файл с помощью действия Open на экране приветствия (Welcome) PhpStorm. Опыт работы с IDE будет вам знакомым — с подсветкой кода, инспекциями, автодополнением кода и даже отладкой и развертыванием.

    Кроме того, вам скорее всего понравится включенный по умолчанию плагин Scratch, позволяющий создавать временные файлы без сохранения на диск (Ctrl+Alt+Shift+Ins на Windows, Cmd-Shift-N на Mac).

    Где почитать подробнее?


    Конечно же, мы не успели рассказать обо всех новшествах PhpStorm 8 в этом небольшом хабропосте, потому дополнительную информацию вы сможете найти на других наших ресурсах.

    В нашем англоязычном блоге и в разделе туториалов собраны материалы по большинству описанных в данном посте фичам (и многим другим). Кроме того, вам может быть интересно посетить вебинар с нашим Developer Advocate Maarten Balliauw 7-го октября — зарегистрироваться можно здесь.

    Что дальше?


    Качайте бесплатную 30-дневную пробную версию PhpStorm 8 на странице продукта, где при желании можно узнать подробнее о новой версии.

    Обновление до версии 8 бесплатно для всех, кто приобрел лицензию после 16 сентября 2013 года.

    Замечания и предложения по новой версии мы будем очень рады увидеть в нашем баг-трекере или в комментариях ниже.

    И, конечно же, подписывайтесь на твиттер PhpStorm, чтобы всегда быть в курсе наших новостей!

    Программируйте с удовольствием!
    — Команда JetBrains PhpStorm
    JetBrains
    323,00
    Делаем эффективные инструменты для разработчиков
    Поделиться публикацией

    Комментарии 68

      0
      Где скачать 7 версию? На главной ссылка на скачивание 8, а тут только с 1 по 6.
      +1
      Баг с нестанадртным эмулятором Терминала(zsh — под Linux; sh — под Windows) испрпавлен в этой версии (Crash при попытке изменить размер терминала, при изменении на высоты на строчку текущий курсор убегал на две, и когда скрывался — Crash)? Просто поломали его в течении последних 5 EAP которые использовал.
        0
        Посмотрел в Issue Tracker'е — Open. Без рабочего терминала как-то не очень.
          +1
          терминал под виндой вообще глючный довольно. виснет в рандомные моменты времени как минимум. помогает + new session
          +3
          Тут обязательно должен быть традиционный вопрос о том, когда планируете устроить распродажу со скидками :)
            +8
            И традиционный ответ, что о скидках мы заранее не сообщаем :) Следите за обновлениями в блоге и твиттере!
            +1
            Спасибо, вам, ребята, за ваш замечательный продукт!
              0
              Спасибо!
              0
              Где-то можно посмотреть подробнее, что означает «понимание унифицированных многоуровневых массивов»?
              +2
              Если уж добавили markdown в докблоках (что, кстати, замечательно), можно и глобальную поддержку прикрутить. Плагин для markdown опять отвалился, а способ с бандлами textmate даёт довольно ущербные результаты и плохо настраивается.
                0
                Пока что полной глобальной поддержки Markdown со стороны JetBrains нет — она несколько сложнее, чем добавить ее в докблоки. Надеемся на скорое обновление стороннего плагина для совместимости с текущей версией IDE.
                  0
                  Он отвалился ещё на первых EAP этой версии и что-то никак :(
                    0
                    Да, ждем фикса от автора. Там даже уже pull-request есть…
                0
                Немного недопонял насчет remote interpreter. Написано, что можно делать отладку. Настроил интерпретатор через SSH, он подхватил и PHP, и xdebug. Запускаю — страница отрабатывает, но точку останова не ловит.
                Вопрос: мне нужно настраивать xdebug также, как и при обычной удаленной отладке? То есть пробрасывать порты, прописывать autostart?
                  0
                  Очень похоже, что вы запускаете с помощью Run, а не Debug. Использование кнопки Debug должно решить проблему. А так, на самом деле, по настройке принципиальных различий нет.
                    0
                    Шютка?
                      0
                      Нет, предположение. Следующее предположение — включено ли «Listen for PHP Debug connections»?
                  +2
                  Обновление до версии 8 бесплатно для всех, кто приобрел лицензию после 16 сентября 2013 года.
                  Это весьма неприятно.

                  Еще тестируя EAP6, я столкнулся с двумя багами, серьезно мешавшими работать — WI-17801 и WI-17666. Первый, причем, был отмечен как Critical. Купил лицензию в надежде, что уж хотя бы баг, помеченный как Critical, будет исправлен в самое ближайшее время. Однако успела выйти и 6, и 7 версии, но прогресса, за исключением роста числа голосов за баги, не было. Я подумал, что там что-то архитектурно дико сложное, требует переписывать много кода… Но 28 апреля пользователь Maksim Krylosov в комментариях к WI-17801 разместил кейс, после которого разработчикам стало все очевидно, и баг был оперативно исправлен. Удивляет такой подход: за два года никто внутри компании не смог составить подобный кейс. Но уж что ж там — бывает, ладно.

                  Но поскольку исправление было сделано быстро, очевидно, что оно довольно тривиальное, и бэкпортировать его на семерку несложно — просто применить патч. Однако соответствующие просьбы были проигнорированы. Получается, что для исправления багов двухлетней давности надо покупать обновление лицензии. Это, мягко говоря, неприятно. :(
                    0
                    На самом деле бэкпортировать на семерку (или любую другую версию) как раз очень сложно — платформа постоянно изменяется и разрабатывать под две версии платформы очень накладно с точки зрения ресурсов — ведь помимо решения данной проблемы пришлось бы бэкпортировать куски кода, которые затрагивали внутренний API или другие подсистемы, тесно связанный с этой.
                      0
                      Только что понял, что и бэкпорт бы не помог — закончившаяся лицензия, оказывается, не распространяется даже на багфикс-релизы (мой 7.1.3 не предлагает обновляться на 7.1.4).

                      Обидно. Из списка новых фич мне ничего не нужно, а баги почти двухлетней давности, мною же отрепорченные еще при тестировании EAP6, несколько бесят. Я, конечно, за это время привык оформлять код так, чтобы их обойти, но со сторонним кодом-то так не сделать.
                        0
                        Закончившаяся лицензия распространяется на 7.1.4, но мы специально не делали этот апдейт обязательным/рекомендуемым с 7.1.3, так как в 7.1.4 появилась возможность логиниться в IDE с помощью JetBrains Account, что нужно не всем, а других фиксов там не было.
                          0
                          А, ясно! Тогда я все еще хочу бэкпорт. :)
                            0
                            Уточните пожалуйста, обычное renew для версии 7.1.3 сделанное после 16 сентября позволит работать с версией 8?
                              0
                              Да, любое обновление или новая лицензия после 16-го сентября 2013 позволяют обновиться до 8 версии.
                      0
                      Надо же, купил лицензию 27 сентября 2013 и успел на этот релиз) Но обычно использую EAP-версии. Из этого вопрос, сейчас EAP-8, 138.2071 от 5.09.2014, но релиз 138.2000 от 16.09.2014. Мне нужно качать релиз, или стоит продолжать использовать EAP версию, на этом канале будут обновления после релиза?
                        0
                        Стоит качать релиз — в данном случае номер билда был изменен по техническим причинам и 138.2000 старше 138.2071 (они из разных бранчей, если вдаваться в детали). Но EAP к 8.0.1 и следующим также будет в EAP канале конечно.
                          0
                          EAP закрыта навсегда?
                            0
                            EAP к 8.0 — да, а вот EAP к апдейту 8.0.2 будет открыта через пару недель.
                        0
                        А какая-то информация про phpdbg когда будет? Можно хоть как-то кратко описать какая сейчас ситуация, а то статус «в реализации» (уже который месяц? пол года, больше?) как-то удручает.
                          0
                          Вот, подпишитесь на тикет.
                          +2
                          Скажите, пожалуйста, могу ли я сделать Renew, а не полную покупку, и каким образом (лицензия Open Source или коммерческая): сейчас у меня лицензия Open Source на вот этот проект: ClosureTable. Скажем так, сам код я не обновлял там месяца три, но этой библиотеке периодически народ ставит звездочки и почти постоянно количество скачиваний растет.
                            0
                            По поводу Open Source у нас все расписано подробно здесь, но для получения (или продления) OS лицензии звездочек и скачиваний не достаточно — нужна именно активная разработка. Можно написать по адресу, с которого вам приходила Open Source лицензия и узнать, можно ли продлить — каждый проект проверяется отдельно. Renew коммерческой лицензии можно сделать на сайте.
                            0
                            Планируется ли нативная поддержка фреймворка phalcon?
                              0
                              В ближайших планах поддержки точно нет. А что именно из поддержки хочется? У нас в трекере разумно расписанных запросов по phalcon не так много.
                              0
                              Попытался воспользоваться remote interpreter via ssh (PHP version: 5.6.0-1+deb.sury.org~trusty+1), но получаю такую бяку:

                              ssh://bitnami@192.168.1.40:22/usr/bin/php5 C:\Users\Administrator\PhpstormProjects\untitled\test.php Could not open input file: C:UsersAdministratorPhpstormProjectsuntitledtest.php bash: line 0: cd: C:/Users/Administrator/PhpstormProjects/untitled: No such file or directory

                              Все бэкслеши скипаются — это баг или я криворукий?
                                0
                                Проверил на Vagrant — то же самое.
                                bash: line 0: cd: D:/Projects/web/test2: No such file or directory
                                Could not open input file: D:Projectswebtest2test2.php
                                Проверено под Windows Server 2012.
                                  0
                                  Сорри, у меня руки кривые. Надо прописывать vagrant instance folder.
                                0
                                markdown в phpdoc-е это отлично конечно, еще бы распознавание инлайн-тэга {link} в описании param-property и тд допилили и phpdoc стал бы значительно полезнее, давно ведь висит уже youtrack.jetbrains.com/issue/WI-17985, еще есть похожие заявки.
                                С {link} вообще интересная история — в param-property если вставить {link} в ту же строку то он вообще не распознается, а если сделать перенос строки, то начинает нормально распознаваться — таким лайфхаком и приходится пользоваться, однако с method и эта фишка не проходит, к сожалению.
                                  0
                                  Там много нюансов, и что касается конкретно PHPDoc, то мы все же стараемся следовать формальной спеке, которая уже почти принята (пояснения по упомянутому тикету здесь). А так — да, есть некоторое количество багов, и мы стараемся бороться с ними изо всех сил.
                                  0
                                  Поздравляю с выходом новой версии, с удовольствием пользуюсь вашей IDE и рекомендую другим.

                                  Пользуясь случаем хотел бы уточнить один момент по работе с SASS: есть ли возможность указать пути по которым стоит искать SASS библиотеки? Или поддержкой Compass всё ограничивается?

                                  Use case: в проекте используется SASS+Compass+Susy+Breakpoint, всё установлено локально в проект через Bundler. Поддержка Compass включена в проекте, Susy и Breakpoint подключены в config.rb. Через командную строку всё компилируется отлично, но в IDE ни один из миксинов Susy не виден, а хотелось бы.
                                    0
                                    Спасибо! Уточнил у коллег — проверили.
                                    Список нужных миксинов в completion присутствует:

                                    Но есть инспекция “…resolved only by name…”.
                                    Единственное место, где указана библиотека – это config.rb файл: require 'susy' — этого достаточно, чтобы соответствующий gem подхватился как библиотека.

                                    Так что должно все работать, а если все же нет, то нам понадобятся логи в трекер и более подробная информация о настройках.
                                      0
                                      Проверил на отдельном тестовом проекте — действительно работает, буду разбираться дальше, спасибо.
                                    0
                                    Мне не удалось найти способ, чтобы hotkey работали в русской раскладке. Проблема актуальна для Ubuntu 14.04. Может быть есть такая настройка в IDE?
                                      0
                                      Пока невозможно, к сожалению — больше информации есть в соответствующем тикете. Но там вроде бы не всегда такое происходит.
                                        0
                                        советую ознакомиться с этим комментарием от torf на счет использования LinuxJavaFixes. я тоже мучался с этой проблемой и мне помогло
                                        0
                                        А скажите, в релизе заработает автоформатирование шаблонов blade, как HTML?
                                          +1
                                          Пока не сделали, но постараемся его сделать к одному из минорных апдейтов 8ки. Следить за статусом можно здесь.
                                            0
                                            WI-17801 тоже в свое время обещали пофиксить в минорном апдейте 6-ки. :/
                                          0
                                          Что я делаю не так? на этой странице ссылка на 7.1.4 www.jetbrains.com/phpstorm/download/download_thanks.jsp?os=win
                                            0
                                            Попробуйте еще раз, пожалуйста — была проблема с кешами после публикации апдейта 8.0.1, сейчас все проблемы решены.
                                            0
                                            Наконец-то можно открыть одиночний файл!
                                              0
                                              Хотелось бы узнать, когда поддержка PHP 5.6 появится в плагине PHP для IDEA.
                                                0
                                                Уже появилась в плагине PHP к IntelliJ IDEA 14 EAP (выложили 17го Сентября)
                                                0
                                                PHPStorm использую уже несколько лет, очень доволен.

                                                Был до последнего времени.

                                                После установки 8-й версии PHPStorm с воплями и матюгами вернулся к 7-й: восьмая не работает с SVN, на которой я и процветаю — «unknown CVS». В списке доступных систем контроля версий Subversion исчезла.

                                                Это такой мощный маркетинговый ход — или локальная ошибка «только у меня»?
                                                  0
                                                  Похоже на локальную проблему — все есть:


                                                  Может быть куда-то делся плагин в Settings | Plugins? Там должен быть включен плагин Subversion Integration.
                                                    0
                                                    Спасибо, гляну. У вас под Виндой установка или под Маком?
                                                      0
                                                      Под Маком, но я уверен, что на Винде все так же — кросс-платформенность выражается у нас как в самом продукте, так и во всех плагинах, так что они доступны на Win/Lin/Mac без дискриминации какой-либо из платформ.
                                                        0
                                                        Спасибо, буду тогда смотреть, в чем причина на машине.
                                                    0
                                                    Без обид, но использовать SVN — это как сейчас писать на бейсике — в своё время было революцией, но в нынешнее время — вызывает только чувство ностальгии. Не думали переехать на более современные системы?
                                                      0
                                                      > Не думали переехать на более современные системы?

                                                      Данный аспект вне моих рабочих полномочий. Плюс, технической необходимости в таком переезде де факто нет.
                                                    0
                                                    Не подскажете, когда Gherkin станет поддерживать русский язык? В тестах на русском («Пусть», «Тогда», «Сценарий» и т.д.) не работает ни расцветка синтаксиса, ни ctrl+click переходы.
                                                    Если ключевые слова заменить на «Given» и т.д. — все начинает работать как нужно.
                                                    0
                                                    Честно говоря уж и не знаю куда податься, видимо на багтрекер ваш вы все дружно забиваете, потому что как критичные баги могут висеть по 2-4 месяца мне не очень понятно (хотя выше вон говорили и про двухлетний критичный баг), и говорю я сейчас вот про эти два: WI-23442 и WI-24357. Куча голосов, что за один, что за другой, народ недоумевает, но они как висели так и висят. 24357 так и вообще полностью сводит на нет одну из основных фишек PhpStorm 8: поддержка Blade шаблонов. В связи с этим вопрос: доколе?!
                                                      0
                                                      Спасибо, мы знаем об этих двух issue и обе из них помечены к работе в версии 8 (в минорных апдейтах). Багтрекер при этом является основным средством коммуникации по подобным проблемам — могу Вас уверить, что на багтрекер в JetBrains никто и никогда не забивает.
                                                      0
                                                      Подскажите будет ли реализована нормальная работа folding кода? чтоб при различных манипуляциях блоки не разворачивались пока сам их не разверну? в частности html и jade кода. кстати почему нельзя сворачивать контейнеры в jade вида .classname а только div.classname?
                                                        0
                                                        Проблемы такого рода для каждого языка решаются отдельно. И не всегда вообще можно сохранить фолдинг — бывают изменения, которые нарушают структуру существующего кода, и не совсем понятно, как при этом сохранять состояние блоков. Но вообще информации маловато, пожалуйста, пришлите конкретный пример кода к нам в саппорт: intellij-support.jetbrains.com/anonymous_requests/new.

                                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                      Самое читаемое