Что нового в PhpStorm 2019.3
Третье крупное обновление PhpStorm в 2019 году несет в себе много возможностей для повышения продуктивности
Третье крупное обновление PhpStorm в 2019 году несет в себе много возможностей для повышения продуктивности
PhpStorm 2019.3 поддерживает все нововведения PHP 7.4. IDE подсвечивает устаревший код и предлагает быстрые исправления для обновления кодовой базы.
Поддержка типизированных свойств появилась еще в предыдущей версии. В PhpStorm 2019.3 быстрые исправления помогают справиться со всеми затруднениями, и вы можете быстро добавлять объявления типов, нажав Alt-Enter и выбрав действие Add declared type for the field. PhpStorm определяет тип автоматически на основании PHPDoc, исходного значения или объявления типа аргумента в конструкторе.
PhpStorm полностью поддерживает новый компактный синтаксис однострочных лямбда-функций из PHP 7.4. В IDE работает автодополнение для переменных из внешней области, и вы можете перейти к нужному объявлению в один клик.
В PhpStorm есть быстрое исправление для преобразования однострочных лямбда-функций из старого синтаксиса в новую сокращенную запись. Просто нажмите Alt-Enter на анонимной функции и выберите действие Convert closure to arrow function.
PHP 7.4 позволяет добавить в длинное число разделитель в виде знака подчеркивания, чтобы улучшить читаемость кода.
Если вам встретилось длинное число, поместите на него курсор, нажмите Alt+Enter и выберите Add number separators. PhpStorm добавит нижнее подчеркивание «_
» после каждой третьей цифры в десятичных числах и каждой четвертой цифры в шестнадцатеричных, двоичных и восьмеричных числах.
В PHP 7.4 левая ассоциативность вложенных операторов ?:
объявлена устаревшей. Вам придется либо совсем отказаться от тернарных операторов с вложенностью, либо, если они все-таки необходимы, использовать круглые скобки, чтобы указать порядок вычислений явно.
PhpStorm 2019.3 подсвечивает устаревшие выражения и предлагает быстрые исправления, чтобы обновить их.
В новой версии PHP некоторый синтаксис считается устаревшим.
В PhpStorm 2019.3 предусмотрены соответствующие инспекции: IDE выделит фрагменты кода, которые требуют внимания. Там, где это возможно, PhpStorm предложит быстрое исправление для обновления поведения.
В PHP 7.4 исправлено несколько несоответствий, в том числе одно, затрагивающее систему типов. Для метода, унаследованного из родительского класса, теперь можно определить более конкретный тип возвращаемого значения и менее конкретные типы параметров.
PSR-12 дополняет предыдущий стандарт PSR-2 правилами и рекомендациями по использованию новых возможностей PHP. Новый стиль кода включен в PhpStorm 2019.3, и IDE предложит на него перейти. Чтобы переключиться на PSR-12 вручную, используйте действие Set from… в меню Preferences | Editor | Code Style | PHP.
PhpStorm также предложит включить набор инспекций для поиска несоответствий определенным правилам PSR-12.
Вы можете изменить оформление кода в редакторе, нажав Cmd+Alt+L, или запустить форматирование перед коммитом. Также можно изменить форматирование в отдельной папке или по всему проекту с помощью действия Code > Code Cleanup...
Windows Subsystem for Linux — это оболочка совместимости для запуска двоичных исполняемых файлов Linux в Windows 10. PhpStorm теперь поддерживает разработку в WSL: можно запускать IDE на Windows и разрабатывать приложения для Linux. Вы можете указать удаленный интерпретатор PHP в WSL и использовать его для запуска скриптов, тестов и команд Composer, а также для выполнения отладки.
Раньше конфигурации запуска тестов можно было выполнять только через интерпретатор PHP, указанный для проекта по умолчанию, что не всегда удобно.
Больше такого ограничения нет. В PhpStorm 2019.3 вы можете выбрать любой настроенный удаленный интерпретатор для запуска тестов: Docker, Vagrant, работающий через SSH, WSL или любой другой!
Раньше блоки PHPDoc отображались одним цветом и выглядели как обычные комментарии.
Теперь в них работает полноценная подсветка типов, переменных, параметров, методов и свойств. Кроме того, если в комментарии есть HTML-код, IDE выделит его соответствующим образом.
Вы можете выбрать шрифт и цвет для переменной $this
: перейдите в Preferences | Editor | Color Scheme | PHP | Identifiers и настроите ее внешний вид, как вам нравится.
PhpStorm 2019.3 автоматически подсвечивает блоки PHP-кода в файлах Markdown, если вы укажете php
в качестве информационной строки. Кроме того, подсветка PHP работает в строковых литералах благодаря специальному диалекту InjectablePHP, аналогичному PHP, но не требующему открывающего тега.
Посмотрите короткое видео о работе с HTTP-клиентом в PhpStorm, чтобы выполнять запросы правильно.
При открытии http-файла открывается панель инструментов, с которой легко выполнять популярные действия:
Мы добавили три динамические переменные, которые можно использовать в запросах:
Чтобы вставить эти переменные, куда нужно, используйте двойные фигурные скобки.
Вы можете записать несколько запросов в один http-файл. Это удобно, если вам нужно создавать цепочки запросов, в которых один запрос зависит от результата предыдущих.
Раньше приходилось выполнять каждый запрос по отдельности, а теперь можно выполнить все одним кликом.
Если вы отправляете запрос с длинным телом, например c составным содержимым или с несколькими заголовками, его можно свернуть для удобства чтения в редакторе.
Вы можете свернуть весь запрос, оставив только первую строку или тело, нажав на значок стрелки в поле редактора.
В новую версию PhpStorm вошли все функции и улучшения из WebStorm 2019.3. Некоторые поддерживаются по умолчанию, другие — через бесплатные плагины, которые можно скачать из репозитория плагинов.
Новый интеншен Propagate to destructuring Alt+Enter позволяет заменять избыточные переменные еще одной деструктуризацией. Чтобы полностью удалить деструктурирующее присваивание, используйте действие Replace destructuring with property or index access.
Если логическое выражение в условии содержит необязательные части, IDE предупредит об этом и предложит упростить его.
Теперь при переименовании символа в JavaScript или TypeScript-файле IDE объединяет динамические использования в отдельную группу и по умолчанию исключает их из рефакторинга. Это позволяет проводить рефакторинг с большей точностью и дает вам возможность лучше контролировать переименование с помощью окна Refactoring Preview.
Используете Vuetify или BootstrapVue в своем приложении Vue.js? Мы повысили точность автодополнения кода для компонентов и свойств компонентов, входящих в эти и некоторые другие библиотеки компонентов Vue. Это возможно благодаря новому подходу к работе с библиотеками Vue-компонентов, который мы реализовали в IDE.
При скачивании проекта из системы контроля версий вы увидите обновленный диалог Get from Version Control, который отображается на начальном экране и в меню VCS.
Мы постарались упростить получение проектов из GitHub. Теперь вы можете выбрать GitHub в левой части диалога и войти в свой аккаунт прямо оттуда.
Теперь вы можете отправить изменения из любой ветки прямо в окне Branches: выберите нужную ветку и нажмите Push.
Раньше можно было отправить изменения только из той ветки, над которой вы работаете, причем сначала требовалось переключиться на эту ветку.
Просматривая историю изменений, легче воспринимать информацию, если дата отображается в привычном для вас формате, например дд/мм/гггг или мм/дд/гггг.
В PhpStorm 2019.3 можно настроить формат даты для действий VCS Annotate и VCS Log.
PhpStorm, как всегда, включает в себя новую функциональность, разработанную командой DataGrip. Все подробности здесь: Что нового в DataGrip 2019.3.
В PhpStorm и других наших IDE появилась долгожданная поддержка MongoDB. В проводнике баз данных отображаются коллекции и поля, вы можете просматривать данные в виде дерева. Можно сортировать данные по столбцам и фильтровать значения, и конечно, выполнять запросы прямо в IDE.
В конце ноября ожидается релиз PHP 7.4. PhpStorm начинает внедрять поддержку новой версии заранее, чтобы у вас было время выполнить тестирование и начать планировать миграцию. Самым ожидаемым нововведением PHP 7.4, вероятно, являются типизированные свойства, которые уже полностью поддерживаются в PhpStorm 2019.2. Новые инспекции позволяют подсвечивать ошибки типизации, после чего вы можете обновить свою кодовую базу с помощью быстрого исправления Add declared type for the field. PhpStorm определяет тип автоматически на основании PHPDoc, исходного значения или объявления типа аргумента в конструкторе.
Повторяющийся код затрудняет внесение изменений и может даже вызывать регрессионные ошибки, если вы забудете обновить все дублирующиеся части. PhpStorm помогает предотвратить появление дубликатов, автоматически подсвечивая их и делая легко заметными. Поэтому, если вы увидите ранее созданный дублирующийся код или случайно создадите его, вы сразу же об этом узнаете! Новая инспекция называется Duplicated code fragment и включена по умолчанию. Чтобы настроить ее, перейдите в раздел Preferences | Editor | Inspections | General. Нужные параметры можно установить в разделе Preferences | Editor | Duplicates. И конечно же, вы можете применить ее ко всему проекту или его части в любой момент, используя команду Code → Run Inspection by Name.
С помощью регулярных выражений очень удобно производить поиск и замену строковых значений. В PhpStorm появилась возможность автоматической инъекции регулярных выражений в PHP. Это означает, что при использовании в вашем коде функций preg_*
паттерн будет подсвечиваться и проверяться на корректность. Более того, теперь вы можете тестировать паттерны прямо в IDE! Переместите курсор на паттерн и нажмите Alt+Enter, чтобы увидеть быстрое действие Check RegExp.
Раньше для запуска Composer требовалось наличие локального интерпретатора PHP. Недостатком такого подхода было то, что локальная среда часто не отражала реальной рабочей конфигурации или могла вообще не содержать локального интерпретатора PHP. В PhpStorm 2019.2 вы можете выбрать любой удаленный интерпретатор для запуска Composer: Docker, Vagrant, работающий через SSH или любой другой.
Перейдите в раздел Preferences | Languages & Frameworks | PHP | Composer, выберите Remote Interpreter, после чего выберите интерпретатор в раскрывающемся списке или добавьте новый.
PhpStorm поставляется с нескольким интеншенами Alt+Enter для манипулирования строками. В версии 2019.2 появился еще один.
Если вам нужно внести новый параметр в выражение sprintf
, просто выберите его, запустите интеншен Extract selected string part as format function argument и PhpStorm выберет правильное место для параметра. Это работает также и с конкатенацией.
В соответствии со стандартами PSR-2 строки длиннее 80 символов должны быть разбиты на несколько следующих друг за другом строк длиной не более 80 символов каждая. Поэтому если ваш список параметров или массивы стали слишком длинными, вы можете разделить их с помощью нового интеншена Alt+Enter Split comma-separated values into multiple lines. Для тех случаев, когда вам нужно объединить несколько элементов в одну строку, доступен обратный интеншен.
Появилась возможность добавлять ветки еще быстрее путем копирования и изменения уже существующих. Вы можете нажать Alt+Enter на case-операторе, не имеющем тела, после чего выбрать Copy ‘switch’ branch. Не забудьте внести изменения в скопированный код, поскольку PhpStorm предупредит вас, если блок switch содержит дублирующуюся ветку, т. е. операторы с одинаковым телом, что может либо являться избыточным кодом, либо быть следствием ошибки. Кроме того, если в switch-операторе отсутствует ветка default, PhpStorm 2019.2 позволяет вам быстро исправить это с помощью Alt+Enter.
Файлы .phpt
обеспечивают простой способ написания функциональных тестов. Этот формат используется для тестирования ядра PHP. В PhpStorm 2019.2 встроена поддержка файлов .phpt
, включающая подсветку разделов и скриптов, автоинъекцию языков PHP и INI в соответствующие разделы, автодополнение названий разделов, а также быстрый переход к файлам, на которые размещены ссылки в разделах EXTERNAL.
Docker теперь находится в новом окне Services. Данное окно служит центральной панелью для просмотра всех подключений и работающих процессов. На данный момент в PhpStorm здесь размещены Docker и подключения к базам данных.
Теперь вы можете просматривать файловую систему запущенного Docker-контейнера. Файловая система отображается в новой вкладке Files.
Просто скопируйте строку запроса cURL из ваших браузерных инструментов разработки, документации, терминала или из любого другого источника, затем вставьте ее в файл .http
в PhpStorm, и она будет автоматически сконвертирована в нужный формат. После этого вы можете поэкспериментировать со своим запросом, используя все эффективные возможности Smart completion.
Представьте, что вы сделали запрос для аутентификации в сервисе, а в последующих запросах собираетесь обратиться к конечным точкам, требующим дополнительных разрешений. Раньше это было невозможно, поскольку файлы cookie, полученные в результате первого запроса, не сохранились бы. Но теперь PhpStorm сохраняет все полученные файлы cookie и передает их при выполнении последующих запросов.
В новую версию PhpStorm вошли все функции и улучшения из WebStorm. Некоторые поддерживаются по умолчанию, другие — через бесплатные плагины, которые можно скачать из репозитория плагинов.
Новый интеншен Propagate to destructuring Alt+Enter позволяет заменять избыточные переменные еще одной деструктуризацией. Чтобы полностью удалить деструктурирующее присваивание, используйте действие Replace destructuring with property or index access.
Если логическое выражение в условии содержит необязательные части, IDE предупредит об этом и предложит упростить его.
Теперь, когда вы переименовываете идентификатор в файле JavaScript или TypeScript, IDE группирует динамические вхождения отдельно от остальных вхождений и по умолчанию исключает их из рефакторинга. Это позволяет проводить рефакторинг с большей точностью и дает вам возможность лучше контролировать переименование с помощью окна Refactoring Preview.
Используете Vuetify или BootstrapVue в своем приложении Vue.js? Мы повысили точность автодополнения кода для компонентов и свойств компонентов, входящих в эти и некоторые другие библиотеки компонентов Vue. Это возможно благодаря новому подходу к работе с библиотеками Vue-компонентов, который мы реализовали в IDE.
PhpStorm 2019.2 «из коробки» обеспечивает подсветку синтаксиса для более чем 20 различных языков программирования, включая Ruby, Python, Go и пр. Механизм подсветки реализован с помощью интегрированных пакетов TextMate, поэтому, если вам нужен дополнительный язык, скачайте пакет для этого языка и импортируйте его в IDE.
PhpStorm теперь поддерживает файлы .editorconfig
«из коробки»! Используйте столько, сколько вам нужно. Создавайте файлы в любой папке, после чего указанные настройки стиля кода будут применены только к файлам, размещенным в этой папке.
В дополнение ко всем стандартным свойствам стандарта EditorConfig вы также можете использовать специальные опции PhpStorm для стиля кода. Общие стандарты стиля кода для всей вашей команды теперь можно определить проще, чем когда-либо.
Новая версия предлагает многофункциональную поддержку редактирования скриптов командных оболочек, в том числе автодополнение слов и путей, быстрый доступ к документации и даже рефакторинг Rename. Вы также можете создавать конфигурации запуска скриптов командной оболочки.
Мы интегрировали PhpStorm с несколькими внешними инструментами, чтобы дополнительно расширить поддержку скриптов командной оболочки. Теперь вы можете находить и исправлять ошибки в скриптах при помощи Shellcheck, улучшать их разметку при помощи mvdan/sh, а также нажатием Alt+Enter вызывать Explainshell для получения полного описания команд.
Теперь добавить файл в список игнорируемых файлов можно либо из дерева проекта, либо из вкладки Local Changes в окне VCS. Если вы предпочитаете редактировать файл .gitignore
, вы можете использовать автодополнение пути в редакторе.
PhpStorm 2019.2 вносит существенные изменения в работу с проектами, использующими Git или Mercurial. Теперь вы можете выполнять коммит файлов из вкладки Local Changes в окне Version Control. Здесь вы можете просматривать измененные файлы и при необходимости вносить изменения. Диалог коммита не блокирует остальную среду IDE. Чтобы опробовать эту функциональность, установите флажок Commit from the Local Changes without showing a dialog в разделе Preferences | Version Control | Commit Dialog.
PhpStorm 2019.2 определяет, если вы не включили в коммит какие-либо измененные файлы, которые часто включали раньше, и предупреждает вас об этом.
Теперь вы можете выбрать, какие столбцы вы хотите видеть во вкладке Log окна Version Control. Нажмите на значок с изображением глаза, выберите команду Show Columns, а затем выберите столбцы, которые вы хотите отображать: «автор», «дата» или «хэш коммита».
Теперь вы можете находить нужные данные, даже если не знаете их точного расположения. Кликните правой кнопкой мыши на источнике данных или их группе, где вы хотите выполнить поиск. Затем выберите команду Full-text Search или нажмите Cmd+Alt+Shift+F.
Будут показаны только те строки, которые содержат нужные вам данные. Если вам не удается найти данные из-за большого количества столбцов, используйте текстовый поиск в редакторе данных: Cmd+F.
Найти нужный объект во всплывающем окне перехода бывает нелегко, поскольку в нем часто присутствует много похожих объектов. В PhpStorm 2019.2 вы можете выбрать, где выполнять поиск: по определенному источнику данных или по группе источников. Та же функциональность доступна и в окне Find in Path. Это крайне полезно при поиске исходного кода в DDL других объектов.
Благодаря отладчику можно быстро разобраться с самым заковыристым багом и заглянуть вглубь кодовой базы. Но чтобы найти проблемы в шаблонах, придется пробираться через дебри машинно-генерированного кода. В PhpStorm 2019.1 мы добавили возможность отлаживать оригинальные нескомпилированные файлы шаблонов .twig и .blade.php. При этом в отладчике доступны все традиционные возможности: пошаговое исполнение, отслеживание значений переменных и контекста исполнения и т. д.
Если вам приходится иметь дело с устаревшей кодовой базой и вы хотите привести ее в порядок, стоит начать с удаления «мертвого» кода. Теперь PhpStorm может на лету анализировать ваш код и подсвечивать прямо в редакторе те классы, члены классов и функции, которые, вероятно, нигде не используются. С помощью инспекции Unused declaration можно найти все неиспользуемые элементы в пакетном режиме. Чтобы получить отчет со списком всех проблем, вызовите меню Code -> Inspect Code….
В этом релизе мы добавили несколько новых преобразований для строковых выражений. Теперь можно скопировать конкатенированную строку в буфер, заменить конкатенацию строк интерполяцией или вызовом функции sprintf() и выполнить другие действия. Нажмите Alt+Enter на любом строковом выражении, чтобы увидеть доступные преобразования.
В PhpStorm 2019.1 появилась новая инспекция, которая обнаружит и позволит удалить неиспользуемую переменную в операциях присваивания и конструкциях use в замыканиях. При этом быстрое исправление учитывает ситуации, в которых операция присваивания может иметь побочные эффекты.
С помощью этого рефакторинга можно безопасно перемещать функции и константы из PHP-файлов в классы. PhpStorm при этом обновит все вызовы этих функций. Если нужно переместить сразу несколько функций, выберите их в окне Structure.
Эта инспекция обнаружит методы, которые можно преобразовать в статические, то есть те, в которых не используется экземпляр класса. Для таких методов будет доступно быстрое исправление — можно нажать Alt-Enter и выбрать Make static. Все вызовы будут обновлены автоматически.
Добавлена поддержка запуска Docker-контейнеров в режимах docker-compose run и docker-compose exec. Первый режим подойдет для легковесных контейнеров, которые останавливаются сразу после запуска. Второй позволяет использовать запущенные контейнеры повторно без необходимости перезапуска.
PhpStorm теперь использует информацию из файла .phpstorm.meta.php, чтобы подсказывать, какие аргументы ожидаются в функции и какие значения она может возвращать. Такое автодополнение помогает в ситуациях, когда вместо простого типа, например integer, вы ожидаете увидеть определенный набор констант. Или когда функция ожидает в качестве аргумента какую-то константу. Более того, такое автодополнение будет работать в любом проекте или библиотеке, если вы добавите файл .phpstorm.meta.php в проект.
Мы переработали инспекции и intention-действия, связанные с импортом пространств имен. Основная идея, заключается в том, чтобы избавиться от избыточных классификаторов. Теперь PhpStorm будет при возможности предлагать заменить полное имя класса импортом или удалить его вовсе. Кроме того, при копировании кода в файл PhpStorm попросит повторно использовать существующий псевдоним.
В версии 2019.1 у инструмента Code Cleanup появились специальные возможности для PHP: оптимизация использований полных имен классов с помощью добавления выражения use или удаления избыточной части. Кроме того, Code Cleanup теперь умеет исправлять нарушения стиля кода, используя PHP CS Fixer и phpcbf из PHP_CodeSniffer. Инструмент можно запускать в любое время вручную или перед коммитом в меню Code -> Code Cleanup…..
В новую версию PhpStorm вошли все функции и улучшения от команды WebStorm. Некоторые поддерживаются напрямую, другие — через бесплатные плагины, которые можно скачать из репозитория.
Документация (F1) теперь отображает актуальные описания CSS-свойств, HTML-тегов и атрибутов с сайта MDN и информацию об их поддержке в браузерах, а также содержит ссылки на соответствующие статьи. Чтобы убедиться, что все свойства CSS, которые вы используете, поддерживаются в целевой версии браузера, включите в настройках новую инспекцию, которая проверит совместимость с браузером.
Улучшена поддержка TypeScript в Vue-приложениях: PhpStorm теперь использует языковую службу TypeScript. Вас ждет более точная типизация и информация о типах, вы сможете использовать быстрые исправления, предоставляемые языковой службой, и просматривать все ошибки TypeScript, обнаруженные в текущем файле, в окне инструмента TypeScript.
В PhpStorm появилось 17 новых инспекций, которые на лету обнаруживают ошибки, специфичные для Angular-приложений, и предлагают быстрые исправления. Эти инспекции работают как в TypeScript, так и в файлах шаблонов и проверяют правильность использования привязок, директив, компонентов и т. д.
Встречайте полностью обновленную интерактивную консоль отладчика в окне инструмента Debug для JavaScript и Node.js! Консоль теперь отображает объекты в виде дерева, позволяет менять оформление сообщений с помощью CSS и группировать их, используя методы console.group() и console.groupEnd(). Кроме того, сообщения можно отфильтровать по типу.
Вы можете автоматически заменить функцию, которая возвращает Promise с вызовами .then() и .catch(), на асинхронную функцию с async/await. Просто нажмите Alt-Enter на имени функции и выберите действие Convert to async function. Команда доступна не только для TypeScript, но и для JavaScript и Flow.
Новый диалог Recent Locations отображает фрагменты кода, которые вы недавно просматривали или редактировали. Элементы списка отсортированы в хронологическом порядке: те места, к которым вы обращались позднее всего, находятся в верхней части списка. Для вызова диалога Recent Locations нажмите Cmd-Shift-E / Ctrl+Shift+E. Начните вводить текст для поиска по контексту.
В диалоге коммита появилась опция Uncheck all для частичных коммитов — с ее помощью можно снять выделение со всех фрагментов кода и потом выбрать только нужные. Кроме того, в Git Log добавлены действия Fixup, Squash и Сherry-pick.
Если вам надоели стандартные темы интерфейса, попробуйте новую темную фиолетовую тему или создайте свою! Теперь можно поменять цвет любого элемента IDE: значков, переключателей, стрелок — словом, чего угодно. Настройте PhpStorm на свой вкус и сохраните изменения в виде плагина.
PhpStorm, как всегда, включает в себя новую функциональность, разработанную командой DataGrip: