В большом обновлении PhpStorm 2023.1 вас ждет интеграция с 3v4l.org, повышение производительности, улучшенный новый интерфейс, отладчик с анализом потока данных для PHP, поддержка проектов с несколькими файлами composer.json и многое другое.
В предыдущей версии мы представили новый интерфейс, который по умолчанию был отключен. Мы продолжаем его совершенствовать на основе ваших отзывов и наших исследований. Ниже рассказываем о том, что было улучшено в этой версии.
Переключиться на новый интерфейс можно в настройках: Preferences / Settings | Appearance & Behavior | New UI.
Для удобства работы на небольших экранах в новом интерфейсе появился компактный режим. В этом режиме сужены заголовки окон, сокращены отступы и интервалы, уменьшены кнопки и значки, чтобы вы могли сосредоточиться на коде, а элементы управления не перетягивали внимание на себя.
Чтобы включить компактный режим, войдите в меню View и выберите Appearance | Compact Mode.
Теперь вы можете видеть имя открытого файла, когда вкладки редактора скрыты.
В новом интерфейсе теперь есть возможность разделить область окон инструментов пополам и расположить их так, чтобы вы могли видеть два окна одновременно. Эта опция была доступна в старом интерфейсе, но отсутствовала в новой версии.
Чтобы добавить окно в эту область и разместить его в нижней части, перетащите значок окна вниз по боковой панели и опустите под разделитель. Можно сделать и по-другому: кликните правой кнопкой по значку и в открывшемся меню выберите новое положение окна с помощью действия Move to.
Если у вас открыто несколько проектов в одном окне, теперь можно легко переключаться между ними с помощью вкладок, расположенных под главной панелью инструментов.
По умолчанию на macOS вкладки включены только в полноэкранном режиме. Если вы хотите видеть их постоянно, измените системные настройки следующим образом:
В ответ на ваши отзывы о новом интерфейсе мы изменили дизайн виджета Run в заголовке главного окна, чтобы он так сильно не бросался в глаза.
Благодаря нативной интеграции PhpStorm 2023.1 с 3v4l.org вы можете запускать в IDE скретч-файлы PHP, используя любую версию языка, без необходимости устанавливать что-либо на локальный компьютер.
Создайте скретч-файл, нажав Ctrl+Alt+Shift+Insert.
Выберите нужную версию PHP из выпадающего списка и нажмите кнопку Run. Вы увидите вывод скрипта рядом с редактором.
If you find 3v4l.org useful, consider supporting its author with a donation here: github.com/sponsors/SjonHortensius.
В этой версии вас ждет несколько заметных улучшений производительности. Мы будем работать над оптимизацией и дальше. Вот что вошло в этот релиз.
Некоторые PHP-пакеты настолько популярны, что не имеет смысла перестраивать их индекс для каждого экземпляра PhpStorm. Вместо этого мы уже рассчитали для вас индексы многих популярных PHP-пакетов, таких как PHPUnit, aws/aws-sdk-php, doctrine/orm, laravel/framework, symfony/* и других.
Теперь, когда вы открываете проиндексированный PHP-проект, PhpStorm проверяет composer.json
, чтобы узнать, какие из указанных зависимостей имеют заранее построенный общий индекс.
PhpStorm может загрузить индекс или все же перестроить его локально, в зависимости от того, что быстрее: ваш процессор и оперативная память или интернет-соединение.
Вы также можете генерировать собственные общие индексы для своих частных проектов. Узнайте, как это сделать.
Было:
Стало:
В рамках наших усилий по повышению производительности мы работаем над тем, чтобы как можно больше действий было доступно во время индексирования.
Go to Class (Ctrl+O или Navigate | Class...) — одно из самых популярных действий для навигации по коду. В этой версии оно доступно в любое время, даже когда индекс перестраивается. Раньше, пока индексирование не было завершено, отображался пустой список.
Еще одно действие, которое теперь доступно, даже когда индексирование еще продолжается, — аннотирование кода.
Это значит, что многие ошибки и мягкие ключевые слова будут подсвечены заранее, чтобы ускорить ваш рабочий процесс.
Теперь IDE открывается гораздо быстрее, поскольку PhpStorm использует кэши проекта из предыдущей сессии и ищет новые файлы для индексации. Если при сканировании никаких изменений не обнаружится, IDE будет сразу готова к работе.
Мы работали над повышением производительности всех инспекций, особенно самых медленных. Некоторые из них теперь выполняются на 30-40% быстрее, в то время как для других прирост производительности не столь значителен, но общий эффект все равно заметен. В следующем видео показываем, что изменилось по сравнению с предыдущими версиями.
Мы значительно ускорили подсветку внутри тегов @php...@endphp
. Теперь все ключевые слова и конструкции подсвечиваются гораздо быстрее, независимо от сложности кода.
Антивирусные проверки Windows Defender в режиме Real-Time Protection могут значительно снизить скорость работы IDE. Чтобы этого избежать, PhpStorm теперь предлагает добавить отдельные папки в список исключений Defender.
Параметры можно изменить автоматически или сначала проверить инструкции по настройке Defender и сделать это вручную.
Те, кто предпочитает отлаживать PHP-приложения с помощью Xdebug, теперь могут воспользоваться еще одной продвинутой функцией — отладчиком с анализом потока данных (Data Flow Analysis). Вы сможете заранее увидеть ветки, которые никогда не будут выполнены, не проходя шаг за шагом по коду.
PhpStorm показывает предварительно вычисленный результат условий перед выполнением кода. Это позволяет получить представление о ситуации, не углубляясь в код. Ветки, которые не будут выполняться, во время сеанса отладки отображаются серым цветом.
Если вас не интересует эта дополнительная информация, вы можете щелкнуть правой кнопкой мыши на любом предварительно вычисленном значении и отключить анализ потока данных для текущего сеанса отладки.
Если вы хотите отключить эту функцию навсегда, сделайте это в разделе Preferences/Settings | PHP | Debug | Xdebug.
PhpStorm не производит предварительные вычисления значений свойств из-за технических ограничений. Мы работаем над этим.
Все существующие теги PHPStan и Psalm теперь правильно анализируются в PhpStorm. Так гораздо проще читать код с множеством аннотаций.
Раньше любой открытый проект в PhpStorm рассматривался как единое пространство. Однако все чаще встречаются случаи, когда в одном проекте есть несколько приложений, каждое из которых имеет собственные зависимости composer.json
.
Мы заложили основу для поддержки такого рода проектов с несколькими файлами composer.json
и каталогам `vendor`. Это принесло следующие улучшения:
composer.json
для каждого приложения. Теперь можно использовать регулярные выражения для создания собственных инспекций поиска и замены. Такие инспекции могут быть особенно полезны для обнаружения проблем, связанных со стилем и форматированием, и поиска простых ошибок в коде.
Перейдите в раздел Settings/Preferences | Editor | Inspections и нажмите на значок +. Выберите в списке Add RegExp Search Inspection (или Replace), чтобы открыть диалог, в котором можно настроить новую инспекцию.
Для более сложных случаев, которые могут включать проверку иерархии типов, используйте инспекции Structural Search and Replace (SSR). Learn more about them in the docs, or check out the example in the video.
Каждая версия PhpStorm включает в себя несколько новых инспекций, и PhpStorm 2023.1 не исключение. Вот самые интересные:
Вы можете пометить классы ключевым словом final
, что приведет к критической ошибке в случае нарушения. Более мягкий подход заключается в добавлении тега @final
из PHPDoc.
В этом случае PhpStorm подсветит некорректное наследование, но код не будет вызывать ошибку при выполнении.
С помощью нового быстрого исправления в PhpStorm 2023.1 можно либо добавить совместимый тип возвращаемого значения для методов в дочерних классах, либо изменить его, если он несовместим.
Утверждение можно заменить на assertTrue
/assertFalse
.
Несколько вызовов isset()
с вложенными массивами или объектами можно заменить на один.
Можно добавить global
для переменных, к которым обращаются из других файлов.
var_dump()
/ dd()
в терминале Мы стремимся упростить отладку для тех, кто предпочитает подход «dump and die». В качестве первого шага мы сделали пути к файлам и ссылки на классы интерактивными. Нажатие на них откроет соответствующий файл в редакторе.
В предыдущей версии PhpStorm мы добавили описания для различных форматов в функциях даты и времени.
Для всех функций, которые принимают режимы файлов, в списке вариантов автодополнения теперь отображаются подробные описания этих режимов. Вам больше не придется запоминать, что означают r+
, a
и w
.
Мы добавили несколько новых шаблонов Live Templates, включая fun
для шаблона функции и fori
для индексированных циклов.
Теперь в PhpStorm можно увеличивать и уменьшать размер всех элементов интерфейса одновременно. Для этого выберите View | Appearance в главном меню и настройте нужный масштаб.
Это может быть полезно во время презентаций, демо, стриминга и онлайн-совещаний.
Для быстрого вызова этих действий им можно назначить сочетания клавиш. Перейдите в окно Search Actions (Ctrl+Shift+A), введите "zoom ide" и укажите сочетание клавиш после нажатия Alt+Enter.
Теперь в PhpStorm можно сохранять варианты расположения окон инструментов и переключаться между ними по необходимости. Новые действия для сохранения, редактирования и активации макетов вы найдете в разделе Window | Layouts.
Вы найдете новый флажок Remember size for each tool window в разделе Settings/Preferences | Appearance & Behavior | Tool Windows. Эта опция позволяет зафиксировать ширину боковых окон инструментов или сохранить возможность их менять.
Действие Fill Paragraph, которое позволяет разбивать длинные фрагменты текста на несколько строк одинаковой длины, теперь доступно для Markdown-файлов.
Установите курсор внутри абзаца, который нужно отредактировать, и вызовите действие Fill Paragraph через меню Edit или найдите его с помощью Find Action (Ctrl+Shift+A).
В разделе Settings/Preferences | Editor | General | Smart Keys, появилась новая страница с настройками для Markdown.
Так вам будет проще настроить IDE согласно своим предпочтениям, поскольку на этой странице есть отдельные флажки для разных функций редактора (раньше был всего один флажок в разделе Settings/Preferences | Languages & Frameworks).
Мы добавили новый флажок Selection в разделе Settings/Preferences | Editor | General | Appearance | Show Whitespace. Если его установить, PhpStorm будет отображать пробелы в виде маленьких точек только при выделении кода.
В окне Structure появились цветовые индикаторы изменений.
Это значит, что теперь вы можете видеть, какие свойства, методы и функции были добавлены или изменены.
Теперь перемещаться между ветками стало проще, поскольку они хранятся в раскрываемых списках.
В PhpStorm 2023.1 работает автодополнение во всплывающем окне Create New Branch. Как только вы начнете вводить имя новой ветки, IDE предложит подходящие префиксы на основе имен существующих локальных веток.
Теперь проверки коммитов в Git и Mercurial производятся в фоновом режиме — после коммита, но до отправки изменений в репозиторий. Это ускоряет всю процедуру выполнения коммита.
Наше исследование показало, что в наиболее распространенном сценарии использования пул-реквестов пользователи сначала идут на GitHub, а затем обращаются к IDE в случаях, когда нужно полностью просмотреть код.
Мы упростили этот процесс, переработав окно Pull Request. Теперь в нем есть отдельная вкладка для каждого открытого пул-реквеста. На ней вы сразу увидите список измененных файлов, но теперь там нет ничего лишнего, чтобы вы могли лучше сосредоточиться на текущей задаче.
Новая специальная кнопка позволяет быстро выполнить действие, которое считается наиболее подходящим исходя из текущего состояния пул-реквеста.
Журналы всех контейнеров Docker Compose теперь собраны в одном месте — на вкладке Dashboard в узле Docker-сompose, где они обновляются в реальном времени.
Теперь можно легко подключиться к реестру контейнеров Azure. Перейдите в Preferences / Settings | Build, Execution, Deployment | Docker | Docker Registry и выберите опцию Docker V2 в поле Registry.
:z
для привязки томов на SELinux Теперь у вас есть возможность добавлять флаги конфигурации :z
при монтировании каталога с хоста, что позволяет подключать тома к Docker-контейнерам на устройствах SELinux.
Чтобы включить эту функцию, перейдите в раздел Preferences / Settings | Advanced Settings | Docker.
В PhpStorm появилась долгожданная поддержка Astro. Она доступна через плагин, который можно установить в разделе Preferences / Settings | Plugins. Плагин обеспечивает базовую функциональность, включая подсветку синтаксиса, автодополнение кода с автоматическими импортами, рефакторинги, навигацию, правильное форматирование и многое другое.
Мы добавили поддержку TypeScript в Vue-шаблоны. Она включится, если установить для атрибута lang
в теге script
значение ts
. Раньше, независимо от атрибута lang в теге script
, использовался JavaScript. PhpStorm теперь поддерживает встроенное приведение типов, улучшенное сужение типов и показывает корректную информацию о выведенных типах в быстрой документации для шаблонов однофайловых компонентов Vue.
В этой версии добавлена поддержка параметров конфигурации, в частности, автодополнение имен пользовательских классов в настройке classAttributes
, а также поддержка экспериментальных настроек, таких как tailwindCSS.experimental.configFile
.
Эти параметры конфигурации можно настроить в разделе Preferences / Settings | Languages & Frameworks | Style Sheets | Tailwind CSS.
Мы рассказали вам о главных изменениях, но конечно, есть и другие. Подробнее обо всех нововведениях читайте в нашем блоге.