phpstorm короткие теги php
PhpStorm — повышаем производительность (клавиатурные сокращения). Часть 1
PhpStorm — повышаем производительность (плагины и темы оформления). Часть 2
У всех нас есть любимые IDE или редакторы в которых мы пишем код. Для меня это PhpStorm, и потребовалось некоторое время, чтобы освоить все клавиатурные сокращения и ускорить свой рабочий процесс. В этой статье я поделюсь с вами некоторыми сочетания клавиш и советами, которые возьмут на себя часть рутинной работы, если вы тоже делаете свою работу в этой IDE. Эта статья была частично вдохновлена этим Reddit тредом, и я буду упомянать и демонстрировать некоторые трюки найденные там.
Обратите внимание, что я разрабатываю на Linux в Vagrant, размещенном в Windows, я буду использовать клавишу CTRL вместо CMD. Если вы работаете в OS X, замените CTRL на CMD.
Клавиатурные сокращения и хаки
(осторожно, много gif изображений)
Давайте посмотрим, чем мы можем воспользоваться: (в скобках рядом с сокращениями указаны названия функций в keymap)
К тому же, как вы можете видеть во всплывающем окне, которое появляется в приведенной выше анимации, вы можете выбрать переформатирование всего проекта. Если есть необходимость использовать эту возможность часто и при этом вы не так много работаете над проектами других людей, то возьмите на заметку — есть возможность связать макросом CTRL+S и автоформатировать код при каждом сохранении. Но стоит заметить, однако, что если вы работаете над проектом с кем-то еще, это может привести к слишком частым изменениям форматирования кода и загрязнить систему контроля версий.
Если вы находитесь в Linux, комбинация CTRL+ALT+L уже может быть связана с «Блокировкой экрана», и вы должны будете отвязать его в системных настройках или изменить его в настройках PhpStorm.
Продуктивное использование PHPStorm
В процессе использования IDE иногда случайно, иногда специально находятся полезные фишки, сочетания клавиш и прочие заложенные разработчиками приятные штуки, которые никогда не оседают в памяти без регулярного их использования и всячески ускользают при чтении мануалов.
Не претендуя на библию или «настольную статью программиста» я хочу поделиться полезными находками в моей любимой IDE, не скатываясь в тупую копипасту мануалов и скучных списков хоткеев, только то, что я сам использую постоянно и над чем удивляются коллеги: «о! а так можно?»
Если ни одна из фишек описанных в статье вам была не в новинку, потрудитесь добавить хотя бы одну свою, тогда мир станет лучше, деревья зеленее… ну вы поняли.
Я работаю на Mac, поэтому хот-кеи указываю в «своей» раскладке. Большинство из них будут работать простой заменой [CMD] на [CTRL] или [ALT], остальные, возможно, придется поискать на вкладке Keymap. Буду благодарен, если кто-то проверит и продублирует раскладку для WIN.
Автогенерация кода
Существует куча рутинных задач, которые иногда выполняются самим фреймворком, а иногда требуют тупой ручной работы. PHPStorm помогает упростить некоторые [CTRL]+N, например:
Создание геттеров и сеттеров (Getters & Setters)
По существующим переменным класса можно сгенерировать набор геттеров и\или сеттеров, причем в появляющемся окне можно выбрать для каких именно.
Создание PHPDoc
По сути действие аналогично тому, как если перед существующим методом начать писать /** и нажать Enter. Можно выбрать одну или несколько функций и на основании атрибутов и содержимого будет сформирован Doc Block.
Переназначение и реализация при наследовании (Override & Implementation)
При создании класса потомка или реализации абстрактных методов, чтобы не допустить ошибку, обычно приходится лезть в класс предок и запоминать или копипастить название и атрибуты метода. Или проверять для всех ли абстрактных методов есть реализация и вспоминать что же там требуется для ArrayAccess. Есть вариант получше:
[CMD] + I – Имплементация
[CMD] + O – Переназначение
После нажатия хоткея появляется окно где можно выбрать какие именно методы будем реализовывать. После выбора генерится соответствующий метод с соблюдением приватности и имена атрибутов, например так:
Автоформатирование кода
По-умолчанию, нажатие хоткея форматирует файл целиком. Если выбрать область, то форматируется только selection. Если выбрать в дереве папку или весь проект, можно сразу привести в порядок всё сразу.
Подсказки (Code Completition)
Важной функцией IDE является способность подсказывать названия и атрибуты методов. Особенно это важно для ООП, когда цепочки по 3-4 наследующихся класса способны запутать кого угодно.
Для функций нужно писать PHPDoc с параметром @ return. Например:
Для переменных также можно указать комментарий:
Для методов над классом можно указать PHPDoc
Если функция возвращает массив объектов
Задачи (tasks)
Использование систем контроля версий уже давно стало признаком хорошего тона. Но часто бывает проблема, когда работа ведется над несколькими задачами параллельно или прибегает кто-то и срочно просит исправить воооот этот баг прям-вот-щяс. Очень легко можно забыть закоммитить нужный файл или наоборот, в коммит попадают лишние файлы или изменения которых там быть не должно.
Избежать этого и внести порядок в работу можно с помощью Tasks. Суть в том, что у каждой задачи есть свой Change-лист, в котором указаны файлы с изменениями и переключаясь между задачами сразу видно, с какими файлами работали по этой задаче и что нужно не забыть.
Другой положительный момент, что IDE предупреждает, если вы в рамках одной задачи начинаете править файл, уже затронутый в другой.
Добавляет удобства, что при коммите в него автоматически попадают все файлы из текущего change-листа + в комментарий подставляется название задачи.
Хорошо если у вас уже есть багтрекер типа Jira или Redmine, если нет, на том же GitHub есть довольно простая система баг-трекинга, также поддерживаемая PHPStorm. Это позволяет подгрузить номер, название и описание уже существующей задачи по которой вы работаете прямо в IDE, хотя ничто не мешает не пользуясь трекером создавать произвольные change-листы.
FTP, деплой и автодеплой
Со многими проектами работа ведется по FTP или SFTP. PHPStorm имеет удобный функционал для работы с ними. Сохранив доступы к серверу и настроив mapping появляется возможность выгружать и загружать (upload & download) файлы на сервер нажатием одного хоткея. Чтобы работало — нужно не забыть тыкнуть «use this server as default»
Почему-то для Mac не заданы хоткеи по умолчанию для этих действий, но в Keymap можно их задать (спасибо Кэп). Я поставил следующие:
• Upload to Default Server: [CTRL] + U
• Download from Default Server: [CTRL] + D
(привел их для удобства поиска в Keymap + на мой взгляд легко запоминается)
Тут сказывается удобство того, что PHPStorm при нажатии [CMD] + S сохраняет сразу все файлы, т.к в результате процедура сохранения и аплоада совмещаются в одну.
Теперь можно не заботится всё ли загружено и ничего ли не забыто.
Консоль
Многие фреймворки используют консоль для быстрого выполнения частых действий. Для Symfony, Zend и других популярных фреймворков PHPStorm поддерживает подсказки и автодополнение консольных команд в Command Line Tools Console [CMD] + [SHIFT] + X
Но ничто не мешает сделать такое же и для своего проекта или частоупотребляемых команд UNIX или GIT, для этого нужно выбрать исполняемый файл и создать специальный XML файл вида:
Подробное описание как это делается вот тут: devnet.jetbrains.net/docs/DOC-1230
Разновидности поиска
[CMD] + N – Find by Class Name
Поиск по имени класса. Удобно в больших проектах, когда всё зарыто вглубь директорий или просто неизвестно где находится. Убойности добавляет «умный поиск», т.к. ищется как по части названия класса, так и по первым буквам, например SomeVeryLongClass будет найден по «SVLC». Учитывает регистр букв, будьте внимательны.
UPD: «Умный поиск» разработчики называют Camel’s Hump. Кстати в настройках можно сделать чтобы выделение слов, а также перемещение осуществлялось не целиком (до пробела), а именно по по словам (до заглавной буквы). Спасибо, yujin1st
[CMD] + [SHIFT] + N – Find by File Name
Поиск по имени файла. Аналогично поиску по имени класса использует «умный поиск».
UPD: Для нахождения файла по вложенности можно использовать слеш: some/deep/dir/with/file.txt найдется по «s/d/d/w/f», спасибо develop7
[CMD] + [SHIFT] + [ALT] + N – Find Symbol
Поиск любой функции/метода и констант, очень удобно, когда точно помнишь имя метода, а класс нет. Спасибо conf
[ALT] + [F7] – Find Usages
В момент когда курсор находится на имени класса или метода нажатие хоткея позволяет найти все использования в проекте или определенной части (Scope).
Есть вариант [CTRL] + [ALT] + [F7] — тот же поиск по использованиям, но в виде контекстного меню. Спасибо iPavel
[CTRL] + [SHIFT] + F – Find in Path
Поиск произвольной фразы по файлам проекта. При рефакторинге обычно хорошо дополняет Find Usages.
Не стоило бы писать о “просто поиске”, если бы не возможность ограничить директорию в котором будут искаться нужные штуки, или настроить Scope. Scope позволяет гибко настроить и сохранить область поиска, для использования в дальнейшем. Можно выкинуть из поиска, например, файлы фреймворка или сторонние либы.
Убрать рамку с подписями вкладок
В нижнем левом углу есть кнопка, позволяющая убрать рамки для боковых и нижних вкладок. Сами вкладки можно открывать по сочетаниям [CMD] + 0-9, но некоторые вкладки не имеют цифры. В таком случае поможет быстрое двойное нажатие (даблклик) [CMD], которое на время удержания показывает рамку с кнопками, в которые можно тыкать мышой.
Productivity Guide
В меню Help->Productivity Guide есть возможность посмотреть небольшую статистику про себя, а также список фич со статистикой их использования. Спасибо nxn
Сравнение двух файлов
При выделении двух произвольных файлов в менеджере файлов появляется пункт «Compare Two Files», который показывает их в встроенном дифф-вьювере и позволяет переносить изменения из одного файла в другой. Спасибо pro100tak
Метки в проекте
С помощью [CTRL] + [SHIFT] + 0. 9 можно оставлять метки. Вернуться на метку можно с помощью [CTRL] + 0. 9. Работает в контексте всего проекта. Спасибо ualinker
Интересные хоткеи из комментариев
[CMD] + [ALT] + T (WIN: CTRL + ALT + T)
Окружение выделения предзаданными штуками, типа тегов или if-else, в зависимости от контекста. Спасибо happyproff
[CMD] + [F12] (WIN: CTRL + F12)
Структура текущего класса с поиском и опциональным отображением унаследованных членов
Аналог вкладки Structure, только во всплывающем окне. Спасибо happyproff
[ALT] + [Home] — быстрая навигация по пути к файлам. Спасибо develop7
[CMD] + [SHIFT] + A — поиск по командам IDE
Шпаргалка: Горячие (hotkeys) клавиши PhpStorm и PyCharm
Горячих клавиш в IDE PhpStorm и PyCharm гораздо больше, чем в приведенном ниже списке. Здесь я привел только те, которыми пользуюсь сам (* звездочкой выделил наиболее используемые мною горячие клавиши).
Шпаргалка будет обновляться, если начну использовать новые hotkeys.
Для настройки горячих клавиш или добавление собственных сочетаний клавиш перейдите File > Settings > Keymap.
Редактирование
*Ctrl + W — выделение текущего блока. Если нажимать W несколько раз, то будут выделяться родительские блоки по иерархии.
Ctrl + Shift + W — проделывает обратное действие от предыдущего
Ctrl + Y — удаляет строку
*Ctrl + D — дублирует строку
Ctrl + Shift + U — делает выделенный текст или заглавными, или строчными буквами
Ctrl + Delete — удаляет часть от курсора до конца слова
*Ctrl + Alt + L — форматирование кода соответствии с настройками code style.
*Ctrl + / — закомментировать/раскомментировать текущую строку.
Ctrl + Shift + / — закомментировать/раскомментировать выделенные строки кода.
Ctrl + Shift + J — к текущей строке присоединяет нижнюю.
Ctrl + [ или ] — перемещает курсор в начало или конец блока с кодом, в теле фукции, в теле цикла и т.д.
Ctrl + Shift + ] или [ — выделить код код до конца или до начала блока
*Tab — сделать отступ (табуляцию)
*SHIFT + Tab — убрать отступ
*Ctrl + Alt + Стрелка вверх — перемещает текущую строку вверх.
*Ctrl + Alt + Стрелка вниз — перемещает текущую строку вниз.
Ctrl + Shift + Стрелка вниз — перемещает текущий логический блок вниз
*Ctrl + Space — выводит возможные варианты автодополнения
Ctrl + курсор мыши над кодом — краткая информация
*Ctrl + клик по названию переменной или метода, или CTRL+B когда курсор установлен на названии, приведет туда, где метод или переменная определены.
*Ctrl + G — перейти к строке по номеру
*Alt + Клик левой кнопкой мышки — мультикурсор, если нужно одновременно несколько курсоров, кликаем мышкой в нужные места, куда нужно их добавить
*Ctrl + Alt + J — обрамление выделенного текста тегом (нужно выбрать первый пункт из всплывающего окошка)
F11 — быстро установить закладку
Shift + F11 — просмотр всех закладок
Поиск / замена
Двойной Shift — поиск по проекту
*Ctrl + F — поиск в текущем файле
*Ctrl + R — поиск и замена
*Ctrl+Shift+E — вызовет всплывающее окно, в котором показаны последние куски кода в разных файлах, с которыми вы работали
Ctrl + Shift + F — поиск в группе файлов (например в проекте или папке)
Ctrl + Shift + R — поиск и замена в группе файлов
Ctrl + N — найти в каком файле находится класс
*Ctrl + Shift + N — поиск файла по названию
Разное
Ctrl + Alt + S — быстрый доступ к настройкам
*Shift + F6 — переименование файла (выделите в блоке с файлами проекта нужный файл).
PhpStorm 2020.3: PHP 8, атрибуты, PHPStan и Psalm, Xdebug 3, Tailwind CSS и совместная разработка
Рады представить финальный мажорный релиз PhpStorm в этом году! Под катом подробный разбор всех изменений и новых возможностей.
PHP 8
PHP 8.0 выпущен. Большое спасибо всем контрибьюторам и менеджерам релиза!
PhpStorm 2020.3 поддерживает все последние изменения языка. Давайте рассмотрим, что доступно и как это использовать в IDE.
Версия языка в статусбаре
Теперь в статусной строке всегда отображается текущая версия PHP проекта. Оттуда же можно переключить версию.
Если переключатель не активен, это означает, что ограничение на версию PHP задано в composer.json.
Именованные аргументы
В PHP 8 аргументы функций и методов могут передаваться путем указания имени параметра. Вызовы теперь автоматически задокументированы, а необязательные параметры стали необязательными в полном смысле слова.
С помощью квик-фикса Add name identifiers можно добавить имена к аргументам:
Опечатки или ошибочные имена аргументов подсвечиваются:
Если передаваемое значение совпадает со значением параметра по умолчанию, то его можно смело удалить:
Вместо массива options для передачи набора параметров можно использовать именованные аргументы, просто передавая только необходимые. Аргументы, передаваемые таким образом, в отличие от элементов массива, являются типобезопасными.
Атрибуты
Атрибуты — это новый, структурированный способ указания метаданных в PHP вместо комментариев PHPDoc.
А вот PhpStorm провалидирует все в редакторе, не запуская Reflection API. При этом проверяются следующие правила:
Вот атрибуты в действии с Symfony:
Штормовские атрибуты PHP 8
Их сразу же можно использовать в своей кодовой базе, ничего не подключая.
#[Deprecated]
Используйте этот атрибут как PHPDoc-тег @deprecated, чтобы пометить методы, классы или константы классов, которые будут удалены в будущем.
Преимущество тут в том, что можно указать замену для устаревшего кода и пользователю будет проще обновиться.
#[ArrayShape]
Этот атрибут полезен для работы с простыми структурами данных или объектоподобными массивами, когда по какой-то причине нельзя объявить класс.
Синтаксис вот такой:
Массив, который определяет «форму», можно вынести в константу и переиспользовать:
К счастью, синтаксис однострочных атрибутов обратно совместим. То есть, если записать #[ArrayShape] в одну строку в проекте на PHP 7, то интерпретатор PHP воспримет эту строку как комментарий.
#[Immutable]
Неизменяемые объекты не могут быть изменены после инициализации или создания. Их использование делает состояние программы более предсказуемым и облегчает отладку.
Атрибутом #[Immutable] можно пометить весь класс или конкретные свойства, чтобы показать, что они не могут быть изменены.
PhpStorm будет проверять использование таких объектов и свойств и подсвечивать попытки изменения.
Этим атрибутом помечаются чистые функции, то есть те, которые не производят никаких побочных эффектов. Такие функции можно безопасно удалить, если результат их выполнения впоследствии не используется.
Если функция помечена как чистая, но в ее теле есть попытка изменить что-то за пределами из внешнего скоупа, то PhpStorm подсветит небезопасный код.
Все стандартные чистые функции PHP уже помечены этим атрибутом в PhpStorm.
#[ExpectedValues]
С помощью этого атрибута можно указать, какие значения функция принимает в качестве параметров, а какие может возвращать.
Например, рассмотрим функцию count:
Вот как атрибут #[ExpectedValues] улучшит ситуацию:
То есть появилось автодополнение, а если передано что-то другое, то подсвечивается ошибка.
Еще один пример #[ExpectedValues]
Возьмем хелпер response() из Laravel. В качестве второго параметра он принимает статус код HTTP.
Давайте исправим это, добавив атрибут #[ExpectedValues(valuesFromClass: Response::class)]
#[NoReturn]
#[Language]
Этот атрибут можно добавить к строковым параметрам, в которых ожидается текст на каком-либо языке, например RegExp, SQL, DQL и так далее.
Для аргументов появится подсветка и дополнительные возможности.
Вернемся к новым возможностям PHP 8.
Объявление свойств в конструкторе
Обычные свойства можно преобразовать в promoted или обратно с помощью квик-фикса Convert to promoted property.
Если свойство объявлено новым способом, но в теле конструктора осталась инициализация, то PhpStorm предложит ее удалить.
Выражение match
Может быть трудно увидеть неправильное использование нового выражения, поэтому PhpStorm подсветит все ошибки.
Будут обнаружены дублирующиеся значения в условиях:
Выражение match с одной веткой и веткой по умолчанию может быть безопасно заменено на тернарное выражение.
А если осталась только ветка по умолчанию, то соответствие match вообще не понадобится.
Наконец, если в разных ветвях одинаковые тела, они могут быть объединены.
Оператор nullsafe
PhpStorm проверит правильность использования оператора:
Висячая запятая
Non-capturing catches
В PHP 8 можно ловить исключение в catch-блоке без переменной.
Выражение throw
Можно использовать сокращение thr и нажать tab — это live template.
Константа ::class на объектах
Собственно, по нажатию Alt+Enter такую замену и можно сделать. Неправильное использование константы ::class PhpStorm подсветит.
Новые функции для строк: str_contains(), str_starts_with(), str_ends_with()
Есть также новые str_starts_with() и str_ends_with() для определения того, начинается или заканчивается ли строка определенной подстрокой. PhpStorm подсвечивает, где вызовы substr() можно заменить новыми альтернативами:
Reclassified engine warnings
В PHP 8 для многих ошибок был пересмотрен тип бросаемого предупреждения. А именно, вместо Notice во многих случаях будет Exception или Type Error.
В PhpStorm в связи с этим некоторые инспекции имеют два разных уровня severity: для PHP 8 и для более старых версий.
Это все из наиболее заметного по PHP 8. Есть еще целая куча изменений помельче, которые будут видны при обновлении на PHP 8.
Поддержка Psalm и PHPStan
Оба статических анализатора можно использовать в PhpStorm 2020.3 для подсветки проблем непосредственно в редакторе.
Оттуда можно перейти к настройкам инспекции и включить подсветку в редакторе. Это делается выбором соответствующей инспекции в списке PHP | Quality tools в Settings/Preferences | Editor | Inspections.
️ Лучше включить только один из инструментов, а не оба одновременно.
Тут же можно указать путь к конфигурационному файлу и настроить аргументы командной строки.
Когда все настроено, откройте любой файл, и вы увидите подсветку от статических анализаторов. Может быть небольшая задержка перед тем, как появится подсветка.
Аннотации
Поддержка типов
Добавили поддержку некоторых типов Psalm и на основе информации из тегов улучшили наш вывод типов. Это сделало более точными проверки, генерацию кода и автодополнение.
Псевдотипы
Поддерживаются псалмовские псевдотипы, такие как scalar, numeric и т. п.
Константы в типах
Пожжерживаются объединения констант и указание через * в тегах param и var.
Тайпхинты для массивов
Описания массивов array тоже поддерживаются, в том числе вложенные.
Дженерики и @tempate
Поддержка дженериков — фича для продвинутых пользователей, у которой нет полной корректной спецификации и много граничных случаев. Тем не менее мы решили реализовать базовую поддержку для @template на основе синтаксиса Псалма, чтобы посмотреть, как это будет использоваться.
Пока поддерживается только самый примитивный случай, когда функция возвращает один из своих параметров.
Эта поддержка дженериков является очень базовой, ее можно считать экспериментальной. Хотим понять, как это будет использоваться и что нужно реализовать в первую очередь. Будем рады обратной связи, особенно в виде реальных примеров использования в наш трекер.
Xdebug 3
Обновился популярный отладчик для PHP, теперь он значительно быстрее в работе и проще в настройке. Более подробно об Xdebug 3 читайте в документе Upgrade guide.
Чтобы сконфигурировать Xdebug 3, теперь достаточно одной опции xdebug.mode (например так XDEBUG_MODE=debug ).
Улучшения отладчика
Возможности по отладке в PhpStorm расширились двумя новыми фишками.
Интеркактивные хинты
Теперь в отладочном режиме вывод переменных можно развернуть, чтобы увидеть все поля. Тут же можно и изменить значения.
Inline Watches
В предыдущих версиях можно было добавить переменную или выражение в список watch и наблюдать, как меняется значение по шагам.
В PhpStorm 2020.3 можно добавлять вотчи непосредственно к контексте, и они будут отображаться рядом с кодом.
Нажмите Add as Inline Watch в попапе на хинте.
Или нажмите Add Inline Watch в контекстном меню редактора.
Или выделите переменную и в контекстном меню выберите Add Inline Watch.
Подсветка и переименование переменных в Twig
Выберите переменную или поместите на нее курсор, и все ее использования в шаблоне будут подсвечены. А чтобы переименовать все вхождения, нажмите Shift + F6.
Совместная разработка – Code With Me
В PhpStorm 2020.3 встроен плагин Code With Me — новый инструмент JetBrains для совместной разработки и парного программирования. С помощью него можно расшарить открытый проект с другими пользователями и работать над ним вместе в режиме реального времени. Подробнее про Code With Me в этих постах.
HTTP-клиент
Интеграция Guzzle с HTTP-клиентом в PhpStorm
Guzzle — один самых популярных HTTP клиентов для PHP. Представьте, что где-то в коде есть HTTP-запрос и хочется его потестировать, не запуская сам код. Раньше пришлось бы копировать все параметры вручную.
Теперь из редактора запрос можно запустить и поиграться с ним, а затем сохранить его как http-файл в проекте.
Больше об HTTP-клиенте в видеообзоре.
Копировать HTTP-запрос в cURL
Чтобы экспортировать HTTP-запрос в cURL-строку, нажмите Alt+Enter на запросе в редакторе и выберите Convert to cURL and copy to clipboard. Теперь его можно вставить в терминал, документацию или любой инструмент тестирования API.
Редактор
Улучшения для Markdown
Для описания диаграмм и графиков можно использовать синтаксис Mermaid.js в markdown-файлах. PhpStorm теперь умеет рендерить превью для них прямо в редакторе. Включается в Preferences/Settings | Languages & Frameworks | Markdown.
Настраивается в Preferences/Settings | Editor | Code Style | Markdown.
И наконец, если нажать кнопку Auto-Scroll Preview в правом верхнем углу редактора, то прокрутка превью и текста будет синхронизирована.
Улучшена проверка орфографии и грамматики
Сплит редактора перетаскиванием
Чтобы открыть несколько файлов бок о бок, просто перетащите вкладку в нужный угол экрана.
Есть еще один способ открыть файл в сплит-режиме — Shift+Enter.
Комбинацию можно нажать на выбранном файле в Project view или в результатах поиска по файлам.
Вкладка предпросмотра
Если нужно быстро просмотреть файлы, то теперь не обязательно открывать каждый в отдельной вкладке. Можно использовать новую вкладку Preview tab.
Чтобы включить ее, нажмите на шестеренку в Project view и выберите Enable Preview Tab и Open Files with Single Click.
Еще можно просматривать файлы нажатием пробела в Project view, не открывая их.
Улучшения для Search Everywhere
Результаты сгруппированы по релевантности:
Можно делать простые математические операции и не открывать гугл калькулятор:
Можно искать по истории Git:
Автоматическое переключение на светлую или темную тему
В Preferences/Settings | Appearance & Behavior | Appearance | Theme выберите Sync with OS.
Новый набор горячих клавиш для macOS
Альтернативная раскладка горячих клавиш для macOS минимизирует использование функциональных клавиш, чтобы не надо было растягивать руку на всю клавиатуру при совершении основных действий. Например, вместо Fn+Shift+F6 для Rename рефакторинга используется ⌥+⌘+R.
Слова вместо иконок для горячих клавиш macOS
Можно сделать так, чтобы вместо иконок типа ⌥ ⌘ отображались слова Alt, Cmd и т. п.
Включается в секции Registry опцией ide.macos.disable.native.shortcut.symbols. Чтобы получить доступ к реестру, используйте Find Action Cmd+Shift+A и напишите там Registry.
Установить PhpStorm как приложение по умолчанию для разных файлов
В Preferences | Settings / Editor / File Types нажать Associate file types with PhpStorm…. В диалоговом окне выберите расширения для файлов, и они будут открываться в PhpStorm.
На macOS требуется перезагрузка.
Шаблоны могут генерировать несколько файлов
Можно одновременно сгенерировать сразу несколько файлов, например скелет для модуля или комбо контроллер-вью.
В Preferences / Settings | Editor | File and Code Templates нажать на , чтобы создать новый шаблон, а затем нажать на иконку Create Child Template File
.
А вот пример того, как сгенерировать контроллер и шаблон в Symfony:
Поддержка Git stage
Включить можно чекбоксом Enable staging area в Preferences/Settings | Version Control | Git.
В окне инструментов Commit (Cmd+0 / Alt+0) появятся две группы файлов: staged и unstaged.
Чтобы добавить файл в staged, нажмите на + напротив него.
Или можно выбрать конкретные строки и добавить их иконкой в редакторе. В этом случае можно закоммитить часть изменений из файла, а над остальными продолжить работу.
Инструменты БД
PhpStorm «из коробки» включает в себя возможности DataGrip, которые охвачены в обзоре релиза DataGrip 2020.3 от наших коллег.
SQL для MongoDB
Теперь можно использовать SQL-запросы к MongoDB. PhpStorm 2020.3 поддерживает SELECT- запросы с JOIN , WHERE , GROUP BY , HAVING , ORDER BY , LIMIT , OFFSET и всеми функциями MongoDB кроме map, reduce, filter и let. Подробнее в блог-посте.
Как всегда, в PhpStorm входят все обновления из WebStorm 2020.3. Наиболее примечательной является поддержка Tailwind CSS.
Tailwind CSS
PhpStorm дополняет классы Tailwind в HTML-файлах и после директивы @apply. А также предоставит автодополнение псевдо-классов.
Если навести указатель на класс в HTML и CSS файлах, то отобразится предпросмотр полученного CSS. Предпросмотр также доступен при автодополнении кода, во всплывающем окне документации F1 / Ctrl+Q.
PhpStorm поддерживает настройки из tailwind.config.js. Например, если определить тему с новыми цветами, то во всплывающем окне автодополнения будут созданные классы с именем кастомного цвета.
Скачать PhpStorm 2020.3 можно на странице “What’s new”.
А вот видеоролик (на английском) с демонстрацией главных фич релиза: