company_banner

Доступен PhpStorm 2018.3



    Всем привет! Мы рады представить вам третий мажорный релиз PhpStorm в этом году. Добавлены поддержка DQL, PHP CS Fixer, деплоймент на множество хостов одновременно, пулреквесты GitHub, новые рефакторинги и много других улучшений.

    Обзор релиза можно посмотреть на странице “What’s new”. Скачать новую версию можно там же или с помощью Toolbox App. Как всегда, доступна 30-дневная пробная версия. Полную же версию могут использовать обладатели действующей подписки на PhpStorm или All Products pack, а также студенты и разработчики проектов с открытым исходным кодом.

    Под катом обзор основных нововведений. (Осторожно, много картинок)

    Поддержка DQL


    Doctrine Query Language – это язык запросов объектной модели, который позволяет создавать запросы к базе данных, используя имена PHP классов и свойств. В PhpStorm 2018.3 реализована продвинутая поддержка DQL. Сущности и свойства работают как реальные ссылки и все соответствующие действия над ними тоже доступны: поиск использований, переход к объявлению, быстрое переименование, работа с ассоциациями (отношения) и многое другое.



    Для обычной строки необходимо добавить инъекцию языка с помощью аннотации /** @lang DQL */. В случае если используется Nowdoc / Heredoc, то можно использовать маркер DQL.

    В следующих версиях мы планируем развивать поддержку DQL, поэтому будем очень благодарны за ваши отзывы!

    PHP 7.3


    Финальный релиз PHP 7.3.0 ожидается уже 6 декабря, поэтому мы заблаговременно реализовали поддержку всех новых конструкций в PhpStorm: гибкий синтаксис Heredoc/Nowdoc, завершающие запятые в вызовах функций и методов, литералы в качестве первого операнда instanceof и присвоение с помощью list() по ссылке.



    Справедливости ради стоит заметить, что поддержка PHP 7.3 доступна и в предыдущей версии 2018.2 начиная с обновления 2018.2.5.

    Поддержка PHP CS Fixer


    В PhpStorm уже была поддержка PHP_CodeSniffer, который помогает находить нарушения правил стиля кодирования. Однако исправлять эти ошибки вручную не так удобно. Особенно в большой кодовой базе или легаси-проекте. Теперь, с поддержкой PHP CS Fixer в PhpStorm, нужно лишь добавить PHP CS Fixer в качестве зависимости в composer.json и запустить composer install. Соответствующая инспекция в PhpStorm включится автоматически. После этого в файле с нарушениями правил можно запустить quick-fix, который сразу исправит все ошибки в файле.



    Упрощенная настройка инструментов качества


    В PhpStorm теперь есть поддержка трех инструментов: PHPCS, PHPMD, PHP CS Fixer. Для удобства мы объединили настройки всех инструментов на странице Preferences | Language & Frameworks | PHP | Quality Tools.

    Автоматический выбор стандартов для PHP_CodeSniffer


    На основе зависимостей вашего composer.json, PhpStorm автоматически определит следующие стандарты кодирования: Symfony, Doctrine, Drupal, WordPress, Joomla!, Magento, MediaWiki, Yii 2, and CakePHP.

    Новые рефакторинги


    Replace with Alias
    Представьте, что у вас есть какой-то импорт, например use Foo\Bar. С помощью нового рефакторинга вы можете ввести алиас и заменить импорт, скажем, на use Foo\Bar as Baz, при этом все вхождения Bar будут заменены на Baz автоматически.



    Доступно и обратное действие – Inline Alias, которое уберет избыточный алиас. Кроме того, алиасы теперь отображаются курсивом, чтобы их было проще отличить визуально от настоящих классов.

    Change Class Member Visibility

    С помощью этого рефакторинга можно быстро и безопасно изменить модификатор видимости метода или свойства (public / protected / private). PhpStorm проанализирует использования выбранного метода или свойства, и предупредит, если есть места, где изменение невозможно и вызовет ошибку.



    Деплоймент на несколько хостов


    PhpStorm поддерживает деплоймент на удаленную машину через FTP/SFTP/FTPS, или в примонтированную папку. Иногда может потребоваться скопировать файлы на множество хостов сразу. Например, если у вас несколько инстансов приложения, или части приложения расположены на разных хостах. В PhpStorm 2018.3 мы добавили группы серверов, чтобы решить эту задачу. Вы можете добавить сколько угодно групп, и в каждую из них добавить сколько угодно хостов. После этого при деплойменте выберите группу и файлы будут отправлены на все хосты группы одновременно.



    Улучшения для функций форматирования строк


    Работать с функциями printf() / sprintf() стало приятней благодаря подсветке плейсхолдеров и значений при наведении курсора. Также PhpStorm предупредит, если число параметров не совпадает с числом плейсхолдеров.

    Кстати, в 2019 году мы планируем реализовать возможность описывать свои кастомные функции форматирования. Подписывайтесь на блог или Твиттер @phpstorm, чтобы следить за новостями.

    Пулреквесты GitHub


    Теперь можно просматривать пулреквесты GitHub, не покидая PhpStorm. Выберите в меню VCS | Git | View Pull Requests, и откроется окно со списков пулреквестов вашего проекта. Тут же можно создать локальную ветку из пулреквеста.



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

    Веб-технологии


    PhpStorm включает в себя все нововведения и улучшения WebStorm, среди которых:

    • Автоимпорты в JavaScript
    • Улучшилась поддержка шаблонов Angular: стали точнее автодополнение и навигация
    • Поддержка Vuetify
    • Для React-приложений улучшено автодополнение, а механизм инспекций предупредит о неопределенных компонентах

    Подробнее обо всех улучшениях от команды WebStorm – на сайте.

    Улучшения IDE


    Search Everywhere

    Если вам нужно что-либо найти, нажмите Shift-Shift и начните печатать. В обновленном диалоге поиска Search Everywhere добавлены табы для поиска по классам, файлам, символам и IDE (настройками и доступным действиям). Переключать области поиска можно нажатием Tab.



    Новая высококонтрастная тема для людей с ограниченными возможностями.



    Из приятных мелочей:

    • Многострочные TODO комментарии
    • Многострочный поиск в Find in Path
    • В терминале теперь после закрытия PhpStorm сохраняются имена открытых табов и текущие рабочие директории!

    Базы данных


    Как всегда, PhpStorm включает в себя все фичи от команды DataGrip:

    • Поддержка Cassandra (а еще, начиная с 2018.2.2, и ClickHouse)
    • Масса улучшений в автодополнении
    • Поддержка расширений PostgreSQL
    • Возможность быстро задавать псевдонимы таблиц

    Прочие улучшения


    • В окне отладчика теперь можно быстро найти переменную, просто начав печатать её имя.
    • При запуске HTTP-запросов автоматически создаются и конфигурации запуска. Такие конфигурации можно также создавать вручную.
    • При разработке PHPUnit-тестов появилась возможность генерировать тестовые методы, а также методы setUp и tearDown, запускаемые перед и после теста, соответственно.
    • PhpStorm 2018.3 автоматически настроит среды тестирования (PHPUnit, Codeception, Behat, PHPSpec) на основе composer.json и файлов конфигурации, а также создаст соответствующие конфигурации запуска.

    Пожалуй, это все, о чем мы хотели бы вам рассказать. Но это далеко не все, что вошло в релиз. Полный список изменений, как всегда, можно найти в очень большом release notes. Сообщайте о проблемах в нашем трекере, ну или просто оставляйте свои комментарии под этим постом или в нашем блоге.

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

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

      +5
      Пулреквесты GitHub

      А не планируется такое реализовать для self-hosted битбакета и гитлаба?

      Обновление отличное!
        0
        Для битбакета и гитлаба пока в планах нет, к сожалению.
        0
        Нет скидок в честь черной пятницы?
          –20

          Неа, еще и кряк сломали, сегодня пришлось новый искать.

            +15
            — JetBrains делает крутой продукт?
            — Вы деньги с помощью него зарабатываете?
            — JetBrains сделали совершенно бесплатную версию для опенсорса и студентов?
            — JetBrains сделали совершенно бесплатную EAP версию, которую надо лишь раз в месяц обновлять?
            — А если уж и опенсорс не пилите, не студент, не хотите поучаствовать в тестировании на триальной версии и накатать фидбек, то цена в 100$ в год — это разве огромные деньги?

            Что вам, Ѣ, не хватает, чтобы просто купить лицензию у наших коллег из Спб? Не, ну серьёзно? Расскажите свои идеи, тут есть (внезапно!) разработчики из JetBrains, возможно к вам прислушаются.
              –13

              Вот EAP и юзаю, но она примерно два три месяца в году недоступна. Успокойтесь вы, да, зарабатываю, да, даже олпенсорс пилю, мог бы и заморочиться, с кряком проще.

                0
                Эм. Откуда 100 баксов в год то?
                Вот я сегодня как раз продлял лицензию — $5.3 на месяц. 63,6 за год.
                  0
                  Ну я нечто среднее взял от цены персональной и корпоративной.
                  +4
                  Не совсем в тему, пиратку не используем, пользуемся в том числе и другими ИДЕ, но мы честно говоря тоже надеялись на скидки в черную пятницу, поэтому ответим на Ваш пост пользуясь случаем, может действительно прислушаются.
                  ** Маркетинг у ДжетБреинса не юзер-френдли сейчас.
                  Крутой продукт делает, но есть равнозначные с технической точки зрения конкуренты, а есть и лучше. Так что это не аргумент.
                  а) Что бы зарабатывать с помощью него деньги его надо сначала купить, лицуху для опенсоурса можно получить лишь сначала сделав опенсоурс проект с помощью чего-то другого. Нам этот момент неактуален, но знакомым которых мы заманиваем на фриланс он существенен. Т.е. тут телега впереди лошади, не юзер-френдли.
                  б) Про EAP версию не знали, спасибо кстати, но опять же, почему мы об этом узнаем с хабра, а не с сайта. Не юзер-френдли.
                  в) Вечная лицензия. Вечность эта отчасти маркетинговая, т.к. нужны обновления. Вот директадмин мы купили в каком-то дряхлом году и всё работает. А тут не юзер-френдли.
                  г) Вечная лицензия часть два. Окей, пункт В можно проглотить, многие так делают. Но елы палы — обновление лицензии стоит 89 баксов, новая лицензия стоит 89 баксов. Тут уже не просто отсутствие юзер-френдли, тут отсутствие логики.
                  д) Прошлый раз хотели продлять писали на мыло, мол нет ли скидок все дела. В ответ — нет не фига, ок, их право. Продлили как есть (у нас несколько лицензий, одну приходится поддерживать свежей). На следующий день буквально через несколько часов хоба — то ли день программиста то ли еще чего — скидки 50%. Написали на мыло мол — ладно, Вы наверное за пару часов о скидках не знали, нельзя ли все же переоформить заказ с текущей скидкой? Ответ был не юзер-френдли.
                  е) Ну и наконец скидки на черную пятницу. Мы их что зря ждали что-ли? Положено делать! Не юзер-френдли:)))

                  Как по нам — так phpstorm нечто среднее между zendstudio и nusphere phped, более легкий чем первое, более функциональный чем второе. К самому продукту претензий никаких вообще. Но маркетинг отделу мы бы там на месте владельцев пинков надавали. Потому что если бы не «вот это всё», то юзали бы не равноправный зоопарк из разных иде, а только пхпсторм и иногда зендовскую студию.
                    +3

                    а) "лицуху для опенсоурса можно получить лишь сначала сделав опенсоурс проект" — а где-то иначе? Или компания должна за "красивые глазки" всем подряд верить наслово и раздавать "опенсорс" лицензии?
                    б) 6 из 10 последних новостей в блоге phpstorm'a о eap и preview версиях. Или их блог — уже не "с сайта"?
                    в) "обновление лицензии стоит 89 баксов, новая лицензия стоит 89 баксов." Серьёзно? Уже года 2 как ввели "вечную лицензию" и подписку, и она изначально была с дифферинциацией цены в зависимости от времени ипользования. Так что явное незнание предмета разговора, либо намеренная ложь. Вот информация не "с хабра", а вполне "с сайта":
                    US $89.00 / 1st year
                    US $71.00 / 2nd year
                    US $53.00 / 3rd year onwards
                    е) "Мы их что зря ждали что-ли? Положено делать!" Ок, сейчас как все "порядочные" люди только цены поднимут в 2 раза, там и скидка 40% подтянется.

                      +4
                      а) Есть смысл верить, потому что обманщики воспользуются хаком. Но речь о другом — ребята хотят подсадить на свою ИДЕ, но маркетинг отдел говорит «неее, сначала поставьте другую ИДЕ, подсядьте на конкурентов, а вот потом...». Не юзер-френдли, да и не логично.
                      б) Инфа о возможных версиях для скачки должна быть в месте где идет скачка, а не «где-то в блоге». Иначе это не юзер-френдли.
                      в)
                      Так что явное незнание предмета разговора, либо намеренная ложь. Вот информация не «с хабра», а вполне «с сайта»:
                      Виноват всегда Ваш собеседник, или одним способом или другим? То что собеседник говорит правду не допускаете даже в качестве маловероятного варианта?
                      image
                      С интересом ждем объяснения скриншота (продление нашей вечной лицензии в корзине в ЛК) в рамках Вашей бинарной теории.
                      е) Существует традиция делать скидки в черную пятницу, реальные скидки. Многие этого ждут. Юзер-френдли делать скидки в этот день. Не юзер-френдли из-за пары «порядочных» продавцов отменять эту традицию.

                      Пожалуйста, учитывайте, что мы говорим лишь в «юзер-френдли» контексте.
                      Имеет ли право компания не делать скидок в черную пятницу или делать цену продления пусть даже дороже цены покупки? Конечно имеет, никто этого не отрицает. Мы лишь говорим о том, что это не юзер-френдли, т.к. первого все-таки ждут, а второе не вполне логично. И то же по остальным пунктам.
                        –3

                        а) берёшь EAP версию, доступную бОльную часть времени, стартуешь разработку опенсорса — получаешь опенсорс версию. Эти стенантия по поводу "нам не дали бесплатную версию" выглядят глупо. А мифическое "это не юзерфрендли" — звучит как "мне все должны".
                        По моему мнению, опенсорс лицензию (1+) нужно выдавать компаниям, где выделено 1+ человек только на опенсорс проекты. Т.к. если я что-то выложил на гитхаб и делаю изменения раз в неделю, то я не занимаюсь полноценно опенсорсом, а опенсорс-лицензию использую в коммерческих целях (для работы).
                        в) Возможно, я придираюсь, но где на скриншоте показана предыдущая подписка? Или условия, как и документацию, читают в последнюю очередь? Уменьшение стоимости подписки происходит при непрерывной покупке (это кстати, разжёвывалось с самого начала). Подозреваю, подписка, благодаря которой получена perpetual лицензция, закончилась ДО 23 ноября 2018.
                        А если не было перерыва и стоимость выше, той, что приведена на сайте, то смысл жаловаться на хабре вместо того, чтобы обратиться в техподдержку?

                          +2
                          а) Эти стенантия по поводу «нам не дали бесплатную версию» выглядят глупо. А мифическое «это не юзерфрендли» — звучит как «мне все должны».
                          Нам жаль что Вам «звучат» «стенания» и «долженствования», смеем заверить Вас, что это именно Ваше восприятие.
                          Мы лишь сказали о том, что текущая маркетинговая позиция не юзер-френдли.
                          Выкатить бесплатную ЕАР версию и спрятать инфу о ней.
                          Выкатить бесплатную версию для опенсорса и не сделать ее доступной для начала разработки опенсорса.

                          в) Возможно, я придираюсь, но где на скриншоте показана предыдущая подписка? Или условия, как и документацию, читают в последнюю очередь?
                          Мы указали на факт, что если «обновление лицензии стоит 89 баксов, новая лицензия стоит 89 баксов», то прописанность этого в условиях отнюдь не делает это юзер-френдли или хотя бы логичным.
                          Вы сами-то стали бы продлять лицуху за 89 баксов, если есть возможность купить новую за те же деньги?
                          +1
                          ребята хотят подсадить на свою ИДЕ, но маркетинг отдел говорит «неее, сначала поставьте другую ИДЕ, подсядьте на конкурентов, а вот потом...»
                          Вот поддержу.
                          Знакомый, который PHP только учит, передает пламенный превед из NetBeans'а. При обучении, когда окупаемость не особо-то понятна и предсказуема, а сто (извините, восемьдесят девять) долларов — вполне себе сумма, на них неделю жить можно…
                            +1
                            Как вариант, знакомому можно предложить оплачивать помесячно, что выйдет $8.90 в месяц.
                              +1
                              Предложить можно, да.
                              Возможно, вы просто не помните или не сталкивались со спецификой подобного обучения. Когда с нуля, и непонятно когда начнет окупаться, и в условиях, скажем так, финансовой недостаточности. Платное (вообще неважно насколько, это в очень изрядной степени психологический момент) и удобное versus бесплатное, но возможно, не такое удобное — в этих условиях вопрос даже не поднимается.

                              Вот когда пойдут заработки — вот тогда, и если удобство PhpStorm окажется привлекательнее усилий, требуемых на поломку опыта работы с NetBeans…
                              Я просто помню момент выбора IDE для обучения, его со мной активно обсуждали. Вариант Community edition с несколько усеченной функциональностью был бы принят, на этапе обучения больших наворотов не нужно.
                              Но… у PyCharm Community edition есть, у IDEA есть, у VS от Майкрософта есть: а конкретно у PhpStorm отсутствует.

                              И да, не поймите меня правильно: я ничего не требую, не прошу и в общем-то даже не критикую (да лично мне оно и не нужно). Ваш продукт — ваши правила. edogs указал на то, что с его точки зрения является проблемой — а я проиллюстрировал дополнительным примером из жизни.
                                +2
                                Хм, кажется у JetBrains есть триальный вариант на месяц. Кажется, это вполне годное решение.
                        +4
                        Как по нам — так phpstorm нечто среднее между zendstudio и nusphere phped, более легкий чем первое, более функциональный чем второе.
                        ИМХО он на голову выше по функциональности, чем ZS.
                          +1
                          Возможно зависит от сценария использования. Нам лично не хватает некоторых фич из ZS в phpstorm, но обратного эффекта не наблюдаем. Однако тормоза ZS наличие этих фич компенсируют не всегда.
                          +2
                          Про ЕАП на сайте всегда написано во вкладке Coming in next version. До послезавтра она еще доживёт у ДатаГрип, например =) www.jetbrains.com/datagrip
                          Плюс, мы пишем о EAP в своих рассылках, в блогах, в твиттерах, куда уж больше.

                    +2
                    А можете, пожалуйста, подсказать: Куда делась тема GTK из Appearance? Она была на порядки привычнее и приятнее, нежели текущая.
                    Скриншоты
                    Intellij: Ползунок из 2000х годов:


                    Intellij: А это оказывается «табы». Найдёте их?:


                    Intellij: Кнопки


                    GTK: Для сравнения, мои системные кнопки и неактивный ползунок


                    GTK: Табы и активный ползунок:


                    Ну т.е. очевидно, по скринам, что тема IntelliJ — плоха.


                    UPD: А, нашёл таск: youtrack.jetbrains.com/issue/IDEA-198114 Причина ясна и как разработчик согласен с решением. Но с точки зрения пользователя продуктов — это плохое решение, т.к. хочется иметь более приятный и привычный интерфейс.

                    UPD2: Огромное спасибо за возможность откатиться в Toolbox! Очень редко встречаю наличие подобного функционала.
                      +1
                      P.S. Полное сравнение интерфейса:
                      Скриншоты
                      До


                      После

                        +3
                        Блин. Они серьёзно удалили тему ГТК? Походу придется теперь вечно сидеть на текущей версии шторма. Новые фичи конечно клевые. Особенно поддержка DQL, но я не готов жертвовать своими глазами из-за них. Ибо остальные темы у них просто уродские. Глаза от них так и вытекают. JetBrains верните тему GTK!
                          +1
                          Мне тут в кулуарах подсказали, что плагинчик «Material UI» вполне себе сносный. Накатал… И действительно, вполне годно:
                          Заголовок спойлера


                          Из минусов могу отметить:
                          1) Размытые иконки
                          2) Не хватает бордюрчиков: кое-где сливается всё сильно.

                          Но учитывая то, что разработчики его очень активно развивают — думаю, стандартную тему можно смело закапывать. Настроек в плагине появилось (с момента моего прошлой его установки, около года назад) море уже и большинство фич кастомизируется (иконки можно просто отключить).
                            0
                            Тоже недавно попробовал его, но мне оно скрыло часть пунктов в status bar. Исчезла иконка скрытия status bar. Во вкладке git сбросило все репозитории из vendor и еще куча мелочей, но нужных мне. Пришлось удалять весь конфиг phpstorm.
                        +5
                        «В терминале теперь после закрытия PhpStorm сохраняются имена открытых табов и текущие рабочие директории!»

                        Я этого джва года ждал. Наконец-то спасибо!
                          0
                          Остальные обновления можно даже не читать. Ух, наконец-то.

                          А может еще подскажете, как «обновить» path в терминале шторма?
                          Имею ввиду, если PATH обновится, то эти изменения обычно вступают в силу после перезапуска терминала. Так работает с обычным cmd, но перезапуск Шторма ничего не дает. Как-то можно это победить?
                          Win10Pro
                            +2
                            Вы часом не запускаете шторм из toolbox app? В таком случае перезапустить надо еще и его, т.к. по факту родительский процесс получается он (выявлено экспериментальным путем, могу ошибаться в сути объяснения)
                              0
                              Как все просто оказывается. Спасибо )
                          0
                          Спасибо за продукт, очень нравиться! Единственное не могу понять почему такой медленный FTP клиент? Мне могут возразить что FTP это старый протокол, но с SFTP все точно также.
                            0
                            У нас есть две основные проблемы с FTP/SFTP:


                            Если ваша проблема не является одной из этих или их комбинацией, пожалуйста опишите её подробнее.
                            +1
                            столько всего нового, а как не было интерактивной консоли при дебаге тестов, так и нет. Как не было удобного способа переименовать неймспейсы, так до сих пор и нет.
                              +3

                              Haters gonna hate :)
                              Контекстное меню -> Refactoring -> rename по папочке или по неймспейсу работает отлично -находит все Usages и переписывает
                              Про консоль четсно говоря не понял. Но хочу отметить, что у JetBrains самая адекватная поддержка, так что создайте тикет, и если за него проголосуют, вас без внимания не оставят ;)

                              +1
                              Всё круто, но где же скидки?)
                                +1
                                Присоединяюсь к вопросу
                                  +2
                                  В этом году были 50% скидки на день дружбы :-)
                                    0
                                    когда следующие будут?
                                      0
                                      JetBrains не анонсирует скидок заранее, поэтому тут ничего не могу сказать.
                                  +1

                                  Вот думаешь что уже нечего улучшать (я все свои хотелки реализовал ещё когда шторм только перестал называться Web IDE), ан нет, удивляете. Всегда хотелось узнать, как выглядит процесс придумывания новых фич и улучшений? Где-то про это уже рассказывали?

                                    +1
                                    В их багтрекере огромное количество предложений. Есть еще тысячи идей, как все улучшить.
                                      +2

                                      Да, но самые крутые штуки придуманы, судя по всему, в недрах.

                                      +1

                                      Спасибо )
                                      Догфуддинг, перенос своих ручных процессов (тех что требуют много шагов или блокнота) в IDE, кросс опыление от других экосистем, фидбек)

                                      +2

                                      График релизов похоже сдвинулся, декабрь на носу. Через месяц 2018.4 ждать?

                                        +2
                                        Начиная с 2016 года выходит 3 мажорных релиза в год, то есть приблизительно раз в 4 месяца. 2016.3 и 2017.3 также выходили в ноябре. То есть следующая мажорная версия будет 2019.1.

                                        Кроме того, если команда успела реализовать какую-то интересную фичу раньше, то мы не «держим» ее до следующего мажорного релиза, а выпускаем в ближайшем минорном.
                                        0
                                        Хотел спросить почему есть отличия WebStorm в мак версии и в linux версии?
                                        Например в linux версии я не могу найти вкладку version control
                                          +1
                                          Alt + 9 || View > Tool Windows
                                            0
                                            Вообще, когда не можете найти что угодно, всегда пользуйтесь Find Action (Ctrl+Shift+A)
                                            +1
                                            спасибо! уже обновился
                                              0
                                              терминал не определил коректный текущий путь папки проекта. почему выбрано такое решение?
                                              –2
                                              Прекрасное обновление. Деплой на группы серверов очень порадовали, давно ждал такой возможности. И сохранение вкладок терминала при закрытии IDE — тоже очень юзабельно.

                                              Было бы очень неплохо ещё чуть-чуть расширить функционал вкладок терминала. Например, добавить возможность конфигурирования отдельных вкладок или что-то вроде скриптов, чтобы можно было не просто сохранять путь вкладки, а так же выполнять команды при запуске.
                                              В большинстве проектов я использую Vagrant для поднятия нужных мне виртуалок и при запуске IDE я как правило сначала выполняю ряд рутинных задач, вида: «открыть такую-то папку, запустить такую-то машинку, подключиться к ней по SSH, перейти в папку проекта на машинке и блаблабла».
                                              Если есть какие-то плагины, дающие возможность реализовать подобный функционал, буду очень рад комментариям.

                                              p.s. есть маленький lifehack для студентов(и не только), желающих получить полный набор софта от JetBrains за бесплатно
                                              image
                                              Это классический студенческий набор, который поставляется вместе с предоставлением студенческого. Но есть одна особенность. Валидацию на студента можно проходить не только в JetBrains, но и на GitHub ТЫК
                                              Почему я говорю, что не только студенты могут воспользоваться привилегией? Всё благодаря тому, что при прохождении валидации на сайте JetBrains к проверке относятся достаточно ответственно, чего не сказать о GitHub. Как-то с товарищами тестировали получение этого студенческого набора без студенческого билета, используя фотографии перваков, которые любезно выкладывают фотографии своих студенческих в социальные сети, помечая их тонной тегов для удобного и быстрого поиска.
                                              После подтверждения статуса студента на GitHub Education, переходим по ссылке ТЫК и дальше всё интуитивно понятно.
                                              Конечно, этот способ не должен стать примером того, как нужно делать и вообще так делать не стоит, но… Для разработчиков, которым не хватает средств на покупку лицензии, это хороший выход и хоть какая-то возможность пользоваться действительно крутыми IDE без возни с кряками и прочим шлаком.

                                              story: Переехал на PhpStorm летом этого года и влюбился. Когда-то давно попробовал им воспользоваться и тогда мне данная IDE показалась до жути не удобной и слишком тяжелой. Покупка нового ПК перевернула взгляд на PhpStorm в лучшую сторону, ибо теперь я могу работать одновременно с несколькими виртуальными машинами, браузером и IDE, не теряя ни капли производительности. Заложенный в PhpStorm DataGrip стал для меня крайне приятной особенностью, т.к. во время разработки крайне удобно использовать автоподстановку в SQL-запросах в проектах, где не убежать от сложных названий таблиц и полей. Расположение на экране элементов делает разработку приятной, не превращая экран в билборд, от которого рябит в глазах. На очень даже компактно помещаются: дерево файлов, окно редактора, окно DataGrip и терминал, особенно когда узнаешь парочку самых горячих комбинаций клавиш.
                                              Одним из самых решающих для меня факторов стало то, что 95% функционала, который нужен при разработке, заложено из коробки и необходимость что-то докачивать/настраивать настигает крайне редко.
                                                +3
                                                или что-то вроде скриптов, чтобы можно было не просто сохранять путь вкладки, а так же выполнять команды при запуске.
                                                Это все есть. Поддерживаются инструменты-таскраннеры типа rake или gulp.

                                                Для разработчиков, которым не хватает средств на покупку лицензии
                                                Можно подрабатывать. Грузчиками, уборщиками в макдональдсе. Или просто использовать EAP.
                                                +1
                                                Доброй ночи, хотелось бы запускать composer.phar через PHP интерпретатор, который является контейнером. Когда ожидать?
                                                It's not supported yet

                                                  0
                                                  Это есть в планах, но в какой конкретно версии будет сделано пока не могу сказать.
                                                  В качестве обходного пути можно использовать Preferences (Settings) | Tools | Remote SSH External Tools
                                                  +2
                                                  Шел 2018 год
                                                  • Wordpress называют фреймворком, делают нативную поддержку, Laravel нет
                                                  • Deploy over FTP

                                                    0
                                                      0
                                                      каким критериям фреймворка он не соответствует?

                                                      Полноценный фреймворк — это набор компонентов, упрощающий реализацию какого-то проекта, допускающий ограничений разработчика в способе разработки, но не ограничивающий вообще никак в цели проекта (т.е результат).

                                                      Например, Laravel можно использовать для разработки standalone-приложения с полноценным GUI на каком-нибудь Qphp. Или внутри игрового движка. При этом, 90% его возможностей можно без проблем применить. Тоже самое можно сказать и о Symfony или Zend, например.

                                                      Можно ли Wordpress использовать для этого же?
                                                        0
                                                        Соглашусь, что области применения WP уже, чем Laravel/Symfony/Zend.
                                                        Но с тем, что фреймворк не может ограничивать цели не могу согласиться. Даже те же Symfony и Laravel прежде всего позиционируются как фреймворки для веб-приложений. Ну а на WP есть вполне успешные примеры разнообразных штук: WooCommerce, BuddyPress, bbPress.
                                                        То есть да, для игрового движка не стоит использовать, но почему это не набор компонентов, упрощающий реализацию какого-то проекта, допускающий ограничений разработчика в способе разработки?
                                                          0
                                                          А это риторические вопросы или нет?

                                                          Ну просто тогда давайте всё что угодно называть фреймворком. Ну вот хабр, например, это фреймворк для написания постов. Просто область применения у него уже, чем у вордпресса… А вот Windows — это тоже фреймворк. Ну и конечно же процессор. Целый хардварный фреймворк!

                                                          И прошу заметить, даже утрируя, в целом — это всё так.

                                                          Короче, к чему я веду. Давайте называть вещи тем, чем принято называть в обществе. В плюсах, например, фреймворками называются те вещи, которые являются частью стандартной библиотеки языка в другой. В JS фреймворки аналогичны по функционалу библиотечкам из PHP. А в PHP, в 2018ом году — это слабосвязанное, переиспользуемое, комплексное решение, в котором нет ни одной зависимости от фронта, или его можно просто удалить, ничего при этом не поломав. Которое, повторюсь, не ограничивает результат, который требуется достичь.
                                                      +2
                                                      Для Laravel же есть отличный плагин plugins.jetbrains.com/plugin/7532-laravel-plugin
                                                      Есть пожелания чего конкретно не хватает по Laravel?
                                                        0

                                                        Я нечасто работаю с этим фреймворком, и может быть не так настроил плагин, но вроде очень не хватает парсинга фасадов и прочей "магии", так любимой разработчиками ларавела.

                                                        +1
                                                        Да много чего, на самом деле, не хватает:
                                                        1. Понимание кастомных директив в шаблонах (приходится оборачивать в #formatter:off).
                                                        2. Подсказка обработчиков события в классе этого события, по аналогии с классами-наследниками.
                                                        3. Нормальная работа с фасадами без необходимости прыгать сквозь laravel-ide-helper.
                                                        4. Более тесная интеграция с роутингом — если его разбить на файлы в крупном проекте, то перестаёт работать переход к экшену и подсказки для route().

                                                        В целом плагин очень сильно помогает, но много рутины всё равно приходится делать руками. Для небольшого проекта он идеально подходит, а с чем-то более серьёзным уже не справляется.
                                                          0
                                                          Спасибо за идеи! Подумаем как улучшить.
                                                      0
                                                      Почему то сломалось переключение окон в полноэкранном режиме на маке. Раньше работало по CMD+~, а сейчас ничего.
                                                        0
                                                        Вообще много проблем возникает именно в полноэкранном режиме:
                                                        — Часто теряется фокус, например когда нужно перезаписать файл, окно всплывает на основном десктопе
                                                        — То же самое при других операциях, например при пуше когда есть конфликты, алерт может где то потеряться
                                                        0
                                                        Возможно ошибаюсь, но разве это не дефолтное поведение? Попробовал с окнами Chrome и других приложений и наблюдаю то же самое: в полноэкранном Cmd+~ не работает.
                                                          0
                                                          Хм, вы правы, странно просто до версии 2018.3 CMD+~ работала и я как то за годы к этому привык. Наверно нужно покопаться в настройках MacOS.
                                                        +2
                                                        Вот кстати идея для следующего апдейта: есть настройка ssh соединения часто через такой же туннель настраивают доступ к базе данных. Добавьте плз в настройку туннеля кнопку скопировать настройки с существующего соеднения ssh а не только базы данных.
                                                          +1
                                                          Спасибо за идею, будет реализовано в рамках задачи youtrack.jetbrains.com/issue/IDEA-178389
                                                            0
                                                            Благодарочка! И раз такая пьянка пошла то вот ещё один нюанс: много разных автоматических сборщиков при деплое проекта для директорий логов медиа итд… использует символические ссылки(что знатно екномит пространство) но вювер из Remote Host их не обрабатывает (дичайшие бесит и у кого как но лично у меня вызывает «бомбление пукана» способное вызвать колебание грунта от 1 до 3 балов по шкале рихтера :) ). Я уже давно покупаю лицензии на все продукты и честно просто не знаю как стимулировать дополнительно. но вот ели ктонибуть поправит это в ближайшее время с меня прямо взрослый ЛИТР Guinness-а
                                                          0
                                                          Вопрос на засыпку, на маке не работает копирования файлов внутри шторма, когда выделяешь файл, делаешь cntr+c и cntr+v ничего не происходит :( Но если копируешь из файдера, то все ок.
                                                          У меня у одного такая проблема?
                                                          0
                                                          Справедливости ради стоит заметить, что поддержка PHP 7.3 доступна и в предыдущей версии 2018.2 начиная с обновления 2018.2.5.

                                                          Очень интересно, что самого PHP 7.3 ещё нет, а его поддержка уже введена.
                                                            +3
                                                            Не понял этого тезиса чуть-чуть. Ну т.е. логично, что фичи заранее внедряются. Подозреваю, что уже идёт работа над поддержкой 7.4.
                                                              0
                                                              Извините, просто недавно познакомился с IDE и конкретно с PhpStorm. Поэтому то, что фичи добавляются заранее приятно удивило
                                                                0
                                                                Ну, учитывая откровенно не полную поддержку PHP — тот факт, что добавляют поддержку пары дополнительных кейвордов и функций (что добавляются в 7.3) кажутся откровенной фигнёй, на которую можно не обращать внимания.

                                                                Я вот всё жду, когда шторм перестанет вставлять use перед declare и ломать исходники, поддерживать автокомплит для корутин, не светиться красным на self в тайпхинтах, говоря, что тут синтаксическая ошибка. Не кричать о некорректных тайпхинтах, которые он сам же и сгенерировал (в вариадик аргументах в частности). Не говорить о том, что private метод в трейтах не используется, а значит его надо удалить. Не косячить с докблоком "@mixin". Не сходить с ума, в анонимных классах и сменах конекстов через bind/bindTo/call анонимок… Короче, жду, когда они завезут наконец поддержку PHP 5.4+ =)
                                                            0
                                                            При изменении названия классов в Symfony не меняются названия классов в определенных ранее сервисах (по крайней мере в 2, 3 версиях). От этого грустно.
                                                              0
                                                              К сожалению, плагин этого пока не может: github.com/Haehnchen/idea-php-symfony2-plugin/issues/501
                                                              В качесте воркэраунда можно нажимать Shift+F6 дважды, и в диалоге прокликать все галочки.
                                                              0
                                                              У вас линк на покупку Webstorm на словосочетании «действующей подписки»
                                                                0
                                                                Спасибо, поправил
                                                                0
                                                                В i3wm при переключении между рабочими областями (несколько мониторов) пропадает курсор ввода.
                                                                Очень надеюсь что в ближайшие 10 лет пофиксят. Спасибо!
                                                                0

                                                                Интересный баг (?) у меня наблюдается под виндой, вторую версию подряд. Встроенный терминал (в подавляющем большинстве случаев, но не всегда) открывается вот в таком виде:


                                                                Скриншот


                                                                То есть, ввод смещён относительно дефолтного вывода вниз. Иногда открывается, как должен, закономерности найти не могу. Не имеет значения, какой терминал выбираю: PowerShell / cmd. В самой винде в терминале такой проблемы ни разу не наблюдал.

                                                                  +1
                                                                  Это действительно баг, пока что исследуем: youtrack.jetbrains.com/issue/IDEA-200147
                                                                    0
                                                                    Эта проблема, кстати, очень часто возникает во всяких виртуалках. Например, когда залезаешь в докер и там пытаешься что-то вводить в терминал. Всё вообще уезжает невероятно.

                                                                    Причём самое интересное то, что точное такое же поведение на линуках тоже воспроизводится. И более того — на родных их терминалах.
                                                                    0
                                                                    Спасибо за Ваши продукты!
                                                                    Решился с декабря оформить лицензию на Full-Pack.
                                                                    Но у меня есть один нюанс: пересел за новый ноут с разрешением экрана FullHD, Win10. Родной шрифт PhpStorm — в нем буквы стали как-то сжаты по вертикали. А к другим шрифтам привыкнуть не могу. Танцы с размерами шрифта, настройками сглаживания ни к чему не приводят. Ставлю рядом старый ноут с Win7, а также комп с Win10 и также FullHD — сразу заметна разница, проблема только на ноуте с Win10. =(((
                                                                    0
                                                                    На новой версии со дня ее выхода. Старый «быстрый» поиск был лучше и быстрее.
                                                                    Часто пользуюсь переходом к файлам по Ctrl + Shift + N. Раньше в 99% находил нужный файл за доли секунды. Сейчас в 99% случаях находит что-то невообразимо левое, еще и с видимой глазу задержкой.
                                                                      0
                                                                      Было бы круто, если бы вы показали примеры. Сейчас, по вашему комментарию, сложно завести тикет и адресовать проблемы разработчикам :)
                                                                        0
                                                                        Нужно нажать Ctrl + Shift + N или Ctrl + N в старой и новой версии и сравнить время появления окна. На новой версии сначала появляется пустое окно, затем где-то через 500-1000 мс появляется содержимое этого окна. Причем не зависит от того первый раз показывается окно или десятый.

                                                                        По поводу непосредственно поиска в любом случае будет сложно что-то адекватное привести в пример без скидывания файлов проекта. Вот например поиск по классам:
                                                                        70225.selcdn.ru/screenshot/20181128143300-84o3t.png

                                                                        Мне почему-то кажется, что будет как с вкладкой Structure: youtrack.jetbrains.com/issue/IDEA-183801
                                                                        Пол года доказываний, что что-то сломалось.
                                                                          0
                                                                          Спасибо большое!
                                                                            0
                                                                            1. Про то, что результаты показываются с задержкой. Мы знаем, будем чинить. Вот тикет: youtrack.jetbrains.com/issue/IDEA-199661
                                                                            2. Про то, что «появляется пустое окно, затем где-то через 500-1000 мс появляется содержимое этого окна.» — это про задержку результатов тоже? Или у вас после Ctrl+N все тормозит? Если второе, это очень необычно и нужно разобраться в деталях.
                                                                            3. Про порядок классов. Из вашего скриншота я не понял, почему вы ждете этот Parser сверху? Они же все одинаково называются? Есть причина? Или просто потому, что он был сверху раньше? Кстати, в любом случае, порядок выдачи должен быть один и тот же. Давайте сверим, а как сейчас на старом? Чтобы включить старый, пойдтие в реестр (Ctrl+Shift+A -> Registry) и выключите там флажок new.search.everywhere.
                                                                              0
                                                                              Есть причина?
                                                                              Не знаю как остальные, но я чаще хочу попасть в свой класс, чем в какой-то вендорный.

                                                                              Я тоже заметил, что поиск стал работать совсем иначе — раньше, например, Ctrl + N у меня почти не искал по js, а теперь предлагает всё подряд. Возможно, и vendor раньше тоже не использовался в поиске, потому и разница (но тут я точно не помню).
                                                                              Я привык к старому поведению, но согласен, что новое логичнее.
                                                                              Но вот то, что названия таблиц приравняли к классам, на мой взгляд, неправильно. А они ещё и на первом месте выскакивают, приходится мотать.
                                                                                0
                                                                                Вот, правильное замечание. Поиск «предлагает все подряд», тоже заметил. Какую-то фигню подсовывает вместо нужных классов.

                                                                                Таблицы у меня кстати внизу списка, но зачем они нужны в списке классов для меня так же загадка.
                                                                                  0
                                                                                  Я бы не назвал это фигнёй, вроде, всё логично — полные совпадения сначала, ниже частичные. Но скоуп поиска расширился, поэтому теперь нужно больше читать и выбирать.
                                                                                0
                                                                                1. Ок, спасибо.

                                                                                2. Видяшка: 70225.selcdn.ru/screenshot/bandicam%202018-11-28%2015-13-28-833.mp4
                                                                                Чисто визуально на видео задержка меньше чем в реальности, возможно из-за фреймрейта. Т.е. появилось серое окно, а уже потом появляются результаты поиска.

                                                                                3. В большей степени «просто потому, что он был сверху раньше». Если уж поменяли алгоритм… ну как бы, зачем?) А по сути там все остальное из папки vendor, которая в gitignore (серенькие строчки), было бы логично такие результаты поиска ставить чуть ниже по приоритету. Ну, на мой взгляд логичнее.

                                                                                Переключился на старый вид поиска. Результаты поиска те же, значит дело не в алгоритме. Хотя все равно странно, «раньше было лучше» :) Ну и подумайте над уменьшением приоритета файлов из gitignore.

                                                                                Кстати, обратно включить флажок не получится, он пропадает из списка. Получилось только через Restore Defaults.

                                                                                P.S. Если скриншоты/видео вам нужны в будущем, скачивайте к себе, у меня TTL файлов не безлимитный.

                                                                                UPD: На старом виде поиска время появления окна и отображения в нем результатов гораздо меньше. Тоже есть «разрыв» между окном и результатами, но его почти не видно, а на новом окне — думаю, сами увидите на видео.

                                                                                UPD2: Win10Pro, SSD, 16 Gb RAM. Проблем с производительностью системы нет.
                                                                                  0
                                                                                  1. Все комментарии про тормоза сводятся к тому тикету, что я прислал. Причём там реально расставлены таймауты: на понимание того, что пользователь закончил печатать и на группировку результатов. Мы знаем про проблему, как я уже сказал, будем улучшать.

                                                                                  2. Про порядок в поиске. Не то, чтобы оправдываюсь, просто сообщаю: сам алгоритм там один и тот же — в старом поиске и новом, как вы убедились. И он так давно полируется, что вряд ли мы бы стали там курочить порядок. Если у вас и правда раньше в одной и той же ситуации порядок был разным, было бы круто узнать больше про эти примеры вплоть до скачивания проекта. Сейчас же мы предполагаем вот что: раньше вы искали из другого модуля. Потому что первыми показываются классы из текущего модуля.
                                                                                  Про гит игнор замечание имеет некоторые основания, даже был тикет, но его отклонили. Подробности тут: youtrack.jetbrains.com/issue/IDEA-125906
                                                                                  В общем, проблему я понимаю так: сейчас пользователь не может руками подсказать IDE приоритет в отображении. Ещё я уточню у разрабочтиков про вендорные классы, возможно нам надо обрабатывать такие юзкейсы. Отпишусь, как будет результат.

                                                                                  3. Почему там таблицы. В общем случае, их тоже может понадобится искать, и мы склеили эти сущности в поиске. В DataGrip эта вкладка называется Tables+, хотя делает то же самое. Ещё и рутины с вьюхами ищет, кстати. Согласен, что эта склейка — неочевидное решение.
                                                                                    +1
                                                                                    2. Я и раньше замечал расхождения время от времени. Причем, не понятно по какому принципу вообще выстраивается список совпадений. В моем случае имена классов везде совпадают на 100%, но почему «вот тот» первый, а «вот тот» десятый? Вроде не по алфавиту, не по частоте использования (в вендорных ни разу не был даже), не по неймспейсам, не по размеру файла. По какому принципу строится порядок выдачи?
                                                                                    Может быть проще сделать примитивное само-обучение?
                                                                                    Например, я по запросу «parser» в 99% случаях перехожу именно вот к тому классу. Пусть алгоритм это запомнит и завтра подсунет мне его на первое место. Таким образом будут учитываться пожелания всех пользователей. Да, понадобится какое-то время на обучение на каждом конкретном пользователе, но этим будет удобно пользоваться.

                                                                                    Кстати, да. Проверил поиск из того же неймспейса — теперь все как надо.

                                                                                    3. Помониторьте реакцию пользователей. По мне так им не место в классах. В отдельной вкладке — пожалуйста, но не в классах.
                                                                                      0
                                                                                      Кстати в вашем случае вы можете написать q.Parser
                                                                                        0
                                                                                        Спасибо, работает. Хотя и не слишком удобно )

                                                                                        Кстати, что-то у вас правда сбился алгоритм сортировки. В окне «Choose methods to override» вообще каша. Вот уже около года два нужных мне метода всегда находились рядом. Выделил — методы создались. Сейчас открыл, а они на расстоянии 15-20 строк друг от друга.

                                                                                        Родительский класс не менялся с прошлой версии PhpStorm, а порядок методов поменяли :(
                                                                                          0
                                                                                          Поступила новая информация от наших разработчиков :)

                                                                                          Судя по всему, в проекте используется Composer. Если добавить настройки Settings | Languages & Frameworks | PHP | Composer | Path to Composer.json & Add packages as libraries, содержимое пекеджей в папке vendor будет распознаваться IDE как библиотеки, в частности, отфильтровываться без галочки Include non-project items, а с нею добавляться после не-библиотечных элементов.

                                                                                          Сейчас мы стараемся, найдя в новом проекте composer.json, инициализировать эти настройки сразу и показывать попап, чтобы пользователь мог отказаться. Видимо, в данном случае что-то пошло не так.
                                                                                            0
                                                                                            Был попап, просто я его закрыл :) Компосер запускается очень редко и что-то настраивать… лень.

                                                                                            Но это помогло. Теперь поиск по классам гораздо адекватнее себя ведет. Спасибо.
                                                                                              0
                                                                                              А раз уж вы тут, подскажите, по какому принципу строится порядок подсказок функций?

                                                                                              Например, я часто пользуюсь var_dump. Ввел var + Tab и все тут.
                                                                                              Но стоит один раз где-то напечатать var_export потом неделю по var + Tab шторм будет дополнять var_export. Затем одумается конечно, но как-то странно.
                                                                                                0
                                                                                                Там сложная логика, зависящая от предыдущего выбранного элемента, напечатанного текста, скорости работы комплишена и языка. Но вообще после выбора var_dump должно бы преселектиться оно. Если не так, то лучше написать реквест в треккер.
                                                                                                  0

                                                                                                  Я думаю что намного легче (и полезней для себя) будет если создать кастомный Live Template. Забиндил на vd[TAB] и пользуешься на здоровье. Другой вариант — подправить postfix completion для var_dump

                                                                            0
                                                                            А вот подскажите, как бороться с тем, что с каждым обновлением IDE все сильнее и сильнее тормозит. После обновления на 2018.3 задержка появления символов при банальном наборе текста сделала IDE абсолютно не юзабельной. Может у меня и не самый последний макбук, но вообще-то четырех-ядерный i7 и 16гб оперативы.
                                                                              0
                                                                              Пользуетесь ли вы внешним монитором, когда PhpStorm тормозит? Если да, посмотрите на производительность без него, будет ли лучше.
                                                                              Если нет, нам обязательно нужны логи, соберите их при помощи Help | Compress Logs и отправьте нам в тикете, пожалуйста: intellij-support.jetbrains.com/hc/en-us/requests/new
                                                                              0
                                                                              C PHP CS Fixer не хватает главного — возможности запустить фиксер по горячим клавишам.
                                                                                0
                                                                                Alt+Enter на ошибке. Еще можно записать Макрос (Edit | Macros) и назначить произвольное сочетание клавиш. Но правда все равно вызывать надо будет на ошибке, а не в любом месте файла.
                                                                                  0
                                                                                  Для этого должна быть ошибка, но они почему-то не все подсвечиваются (хотя исправляются при фиксе).

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

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