Настройка PhpStorm

Настроим PhpStorm, внесем базовые настройки, разберемся с горячими клавишами, установим расширения, добавим пользовательские сниппиты, добавим поддержку линтеров, настроим Xdebug, в общем приведем IDE в рабочий режим.

Оглавление статьи

  1. Вводная информация
  2. Базовая настройка
  3. Переопределение горячих клавиш
  4. Интересные фичи
  5. Установка плагинов
  6. Создание сниппетов
  7. Увеличение производительности
  8. Стили кодирования (PHP линтеры)
  9. Настройка Xdebug
  10. Горячие клавиши

Вводная информация

В серии статей по работе и настройке дистрибутива Pop!_OS был установлен ряд программ, в числе которых была IDE PhpStorm. В этой статье мы настроим его для дальнейшего использования.

Я покажу вам какие обычно плагины использую в своей работе с PhpStorm, какие настройки изменяю и какие горячие клавиши использую.

Базовая настройка

Первым делом зададим базовые настройки редактору PhpStorm. Нажмем на горячие клавиши Ctrl + Alt + S. Откроется окно с настройками, чтобы быстро найти интересующую нас настройку вводим в поле поиска ключевое слово.

GitHub

В поле поиска вводим слово github и в разделе Version Control → GitHub добавляем наш аккаунт, нажав на +. Выберем пункт Login in with Token. Нажмем на кнопку Generate и нас перекинет в бразер на страницу GitHub в раздел где создается Token. Прокручиваем ползунок ниже и нажимаем Generate token.

Копируем созданный Token и вставляем в поле Token в PhpStorm. Жмем кнопку Add Account. Это позволит нам в дальнейшем взаимодействовать с сайтом GitHub. Например: получать, создавать Gist и т.п.


Ligatures

В поле поиска вводим слово Enabled Ligatures и отмечаем пункт Enable ligatures.

Эта настройка сделает более читабельными некоторые специфичные для программирования символы, например =>.


Шрифты

В поле поиска вводим слово Use Custom Fonts и в разделе Appearence активируем пункт Use Custom Fonts, изменяем размер шрифта на 14.

В поле поиска вводим слово Color Scheme Fonts.
В параметре Font изменим значение на DejaVu Sans Mono.
В параметре Size изменим значение на 15.


PSR12

В поле поиска вводим слово Php и в разделе Code Style нажмем на ссылку Set from и выберем PSR12.

Это позволит автоматически форматировать php код согласно стандарту PSR12.


Сохранение файла

В поле поиска вводим слово Actions save и в таблице отмечаем пункты Reformat Code и Optimize Import.

Optimize Import позволяет при сохранении файла автоматически удалять не используемые import.

В поле поиска вводим слово System settings и в разделе Appearence → System settings отмечаем пункт Save files if the IDE is idle for и ставим 10 секунд. Это позволит сохранять документ автоматически после простоя без действия равному 10 секунд.


Преднастройка файлов PHP

В поле поиска вводим слово File and code Templates, в вкладке Files нажимаем на PHP Class и добавляем к конструкции class слово final, чтобы все создаваемые классы были по умолчанию завершенными.

PHP
<?php
#parse("PHP File Header.php")

#if (${NAMESPACE})
namespace ${NAMESPACE};

#end
final class ${NAME} {

}

Теперь перейдем во вкладку Includes выберем PHP File Header и добавим в него следующее содержимое.

PHP
declare(strict_types=1);

Для того чтобы все файлы при создании были строго типизированными.


Не известные переменные

В поле поиска вводим слово Undefined Symbols находим параметр Undefined variable и в его настройках Options активируем параметр Search for variable’s definition outside the current file.

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


Помечаем директории

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

В поле поиска вводим слово Directories выбираем нужный каталог и отмечаем его одним из доступных вариантов Test, Sources, Excluded, Resource Root.

Test - представляют собой файлы тестов, такие как unit- и integration-тесты, которые предназначены для проверки работоспособности вашего кода.

Sources - представляют собой основной код вашего проекта.

Excluded - представляют собой исключенные директории, которые не являются частью вашего проекта или не требуют обработки PHPStorm.

Resource Root - представляют собой ресурсы, такие как шаблоны, изображения, стили и другие файлы, которые могут использоваться в вашем проекте. Эти файлы обычно используются, но не подлежат обработке PHPStorm.

Переопределение горячих клавиш

Меня не совсем устраивают стандартные горячие клавиши в PhpStorm, они несколько отличаются от горячих клавиш VSCode, к которым я привык. Приведем их в привычный вид, для этого откроем настройки Ctrl + Alt + S и перейдем в раздел Keymap.

Перенос строк Soft-wrap

В поле поиска вводим слово Soft-wrap и добавляем горячие клавиши Alt + Z.


Переключение между проектами

В поле поиска вводим слово manage projects и добавляем горячие клавиши Alt + P.


Меню Git

В поле поиска вводим слово vcs operations и добавляем горячие клавиши Ctrl + Alt + G.


Выделение похожего текста

В поле поиска вводим слово add selection to next find match и изменяем горячие клавиши Ctrl + D на Alt + J.

Интересные фичи

PhpStorm многогранен каждый раз открываешь для себя что-то новое. В этом разделе я поделюсь интересными особенностями.

Нажмем клавишу Shift пару раз и появится окно поиска по всему проекту. Здесь можно искать как отдельные файлы проекта так и определенные функции, классы и т.п., а так же различные настройки.

Минималистичный вид

В поле поиска вводим слово Free mode и нажмем на пункт Enter Distraction Free Mode. Этот пункт позволит минимизировать интерфейс PhpStorm и сконцентрироваться на коде. Выйти из Free mode можно аналогичным путем, выбрав Exit Distraction Free Mode.


Отображение номера строк

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


Переключение на каталог активной вкладки

В поле поиска вводим слово Always Select Opened File и переключим одноименный пункт, теперь при переключении между открытыми вкладками не будет происходить переключение в дереве каталогов к каталогу, хранящему файл, выбранной вкладки.

Напоминаю что вернуть изначальные настройки пункта можно тем же способом, просто нажмите на пункт еще раз, чтобы он переключил свое состояние.


Безопасный режим

Режим при котором PhpStorm перестает автоматически индексировать и проверять файлы. Тем самым нагружая меньше ПК.

Чтобы включить/отключить этот режим нажмем два раза Shift и введем слово Save mode выберем пункт Show Power Save Mode.


История изменения файлов

В PhpStorm есть свой мини репозиторий который хранит изменения в файлах. И если есть надобность откатиться на несколько сохранений назад, то удобно им воспользоваться.

Для этого нажимаем Правой кнопкой мыши по файлу который хотим откатить и выбираем пункт в выпадающем меню Local History → Show History. Далее ищем нужную версию и восстанавливаем ее.


TODO лист

В PhpStorm если в комментарии написать слово todo то строка с этим кодом попадет в специальный раздел TODO. В который можно перейти нажав горячие клавиши Ctrl + Tab O

Там же в настройках раздела TODO можно создать пользовательсие фильтры, для фильтрации по определенным типам todo, например todo-front, todo-back.

Удобно использовать для того, чтобы пометить область кода, которая требует доработки.

Установка плагинов

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

Для того чтобы установить плагин, нажмем горячие клавиши Ctrl + Shift + S. В появившемся окне настроек перейдем в раздел Plugins, переключимся на вкладку Marketplace и в поле поиск вводим название нужного плагина и устанавливаем его. Некоторые плагины начинают работать только после перезагрузки PhpStorm.

Gist snippet

Получение пользовательских наработок кода из Gist GitHub.


CodeGlance Pro

Мини карта кода, полезна для быстрого перехода к нужной части страницы.


Scratch

Позволяет добавлять заметки.

Горячие клавиши для создания заметок Alt + C, Alt + A.
Горячие клавиши для выбора заметок Alt + C, Alt + S


Cyan Theme Light

Светлая тема.

Чтобы сменить тему, перейдем в настройки, в раздел Appearance и изменим тему в выпадающем меню Theme.


Env file supports

Поддержка env типа.

Создание сниппетов

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

Чтобы создать сниппет в PhpStorm перейдем в настройки Ctrl + Alt + S зайдем в раздел Editor → Live Templates. Выберем категорию в котором создадим сниппет, например для PHP. Развернем этот пункт и к уже имеющемся по умолчанию списку сниппетов добавим свой, нажав на +.

Выберем пункт Live Template.

В поле Abbreviation вводим короткую команду, которая будет символизировать нам конструкцию нашего кода.

В поле Description вводим краткое описание сниппета, чтобы не забыть о чем этот сниппет.

В поле Template Text вводим сам код. Например:

PHP
<?php
function ($MYTEXT$) {
return false;
}

сниппетом мы можем задавать некоторые переменные вида $INDEX$, текст может быть любой. Значение этих переменных будут заполняться в процессе развертывания сниппета и переключения между переменными нажатием клавиши Tab.

Увеличение производительности

PhpStorm очень мощная IDE, содержащая в себе множество различных плагинов, иногда даже переизбыточных для конкретного пользователя. Это может ухудшить производительность и добавить "тормоза" при работе в PhpStorm. Чтобы это исправить давайте отключим излишнюю функциональность, которая нам не пригодится в работе. Для этого перейдем в настройки Ctrl + Alt + S, раздел Plugins и отключим некоторые плагины.

Angular JS

Отвечает за поддержку JavaScript фреймворка Angular.


Apache config (.htacces) support

Отвечает за поддержку чтения конфигурационного файла .htacces в веб сервере Apache.


Database Tools and SQL

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


Database Tools and SQL

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


Behat Support

Необходим если вы используете Behat BDD framework для тестов.


Css, Less, Sass, PostCss, Tailwind Css

Необходимы если вы используете какую либо из перечисленных технологий для работы со стилями CSS.


Blade

Необходим если вы используете Laravel для создании сайтов.


Twig

Необходим если вы используете Twig шаблонизатор.


Codeception Framework

Необходим если вы используете Codeception Framework для тестов.


Php Comand Line Tool

Необходим если вы используете Composer, Drush, Symfony, Zend Framework Tool, WP-CLI.


Copyright

Необходим если вы пишите Copyright в файлах проекта.


Styled Components & Styled JSX

Необходим если вы используете CSS стили в JSX компонентах.


Docker и Dev Containers

Необходим если вы используете Docker контейнеры.


Vagrant

Необходим если вы используете Vagrant контейнеры.


Drupal

Необходим если вы разрабатываете сайты на Drupal.


WordPress

Необходим если вы разрабатываете сайты на WordPress.


Git

Необходим если вы используете Git.


GitLab

Необходим если вы используете GitLab репозиторий.


File Watchers

Необходим если вы хотите следить за изменением файлов, например Sass и переводить их в CSS. Обычно в моей работе эту часть задачи берет на себя Gulp сборщик.


Gherkin

Добавляет поддержку языка Gherkin, который используется инструментом тестирования Cucumber.


GNU GetText files support

Этот плагин обеспечивает поддержку файлов GNU GetText (*.po).


Mercurial

Необходим если вы используйте Mercurial вместо Git.


Mercurial

Необходим если вы используйте Mercurial как систему контроля версий.


Perforce Helix Core

Необходим если вы используйте Perforce как систему контроля версий.


Html Tools

Необходим если вы используйте Mercurial вместо Git.


Performance Testing

Плагин для автоматического выполнения тестовых сценариев, создания снимков производительности и сбора статистики производительности.


Phing

Обеспечивает поддержку Phing, инструмента сборки PHP-приложений.


Это не полный список того, что можно отключить. Советую ознакомиться с каждым установленным плагином и отключить не нужные.

Инспекция кода

Так же для увеличения производительности можно отключить особый тип конструкций, чтобы PhpStorm их не проверял. Заходим в настройки Ctrl + Alt + S, в поле поиска вводим слово Language Injections и в данном разделе отключаем не используемое нами.

Чтобы не инспектироваться определенные ошибки в коде, заходим в настройки Ctrl + Alt + S, в поле поиска вводим слово Inspections и в данном разделе отключаем не используемое нами.

Стили кодирования (PHP линтеры)

Основная статья с установкой линтеров находится по ссылке, начинать следует с нее, затем продолжайте читать данный раздел. Здесь же опишем настройки линтера конкретно для IDE PhpStorm.

Не нужно ставить сразу два линтера, выберете какой-то один.

PHP CodeSniffer

Для того чтобы вручную не вводить команды настроим PhpStorm на работу с PHP_CodeSniffer. Зайдем в настройки Ctrl + Alt + S введем в поиске Code Style и выберем раздел PHP. Нажмем по ссылке Set from... и выберем пункт PSR12.

Не выходя из настроек вводим в поиск слово Quality Tools и в настройках этого раздела разворачиваем пункт PHP_CodeSniffer.

Возле параметра Configuration жмем кнопу с тремя точками и указываем путь до снифера. Нажимаем кнопку Validate для проверки, при успешной валидации внизу должна появиться надпись OK, PHP_CodeSnifer version... Жмем OK.

Настройки путей до PHP_CodeSniffer
Жмем кнопу с тремя точками и указываем путь до снифера.

Затем меняем состояние активности PHP_CodeSnifer с OFF на ON.
В поле Coding standart выбираем параметр PSR12.
В параметре External formatters выбираем значение PHP Code Beautifier and Fixer.

Настройки PHP_CodeSniffer
Окончательный вариант настроек PHP_CodeSnifer.

PHP CS Fixer

Для того чтобы вручную не вводить команды настроим PhpStorm на работу с PHP CS Fixer. Зайдем в настройки Ctrl + Alt + S введем в поиске Code Style и выберем раздел PHP. Нажмем по ссылке Set from... и выберем пункт PSR12.

Не выходя из настроек вводим в поиск слово Quality Tools и в настройках этого раздела разворачиваем пункт PHP CS Fixer.

Возле параметра Configuration жмем кнопу с тремя точками и указываем путь до снифера. Нажимаем кнопку Validate для проверки, при успешной валидации внизу должна появиться надпись OK, PHP CS Fixer version... Жмем OK.

Настройки путей до PHP CS Fixer
Жмем кнопу с тремя точками и указываем путь до снифера.

Затем меняем состояние активности PHP CS Fixer с OFF на ON.
В поле Coding standart выбираем параметр PSR12.
В параметре External formatters выбираем значение PHP Code Beautifier and Fixer.

Настройки PHP CS Fixer
Окончательный вариант настроек PHP CS Fixer.

Настройка Xdebug

Основная статья по установке и настройке Xdebug находится на этой странице. Ознакомьтесь сначала с ней и продолжайте читать далее этот раздел.

Горячие клавиши

Список горячих клавиш, которые я использую при работе с PhpStorm.

  • Ctrl + Shift + S — меню настроек
  • Alt + Mouse — единичное выделение
  • Alt + Shift + Mouse — множественное выделение
  • Ctrl + Alt + L — автоформатирование кода
  • Ctrl + D — дублирование строки
  • Ctrl + X — удаление строки
  • Ctrl + Пробел — автокомплит служебные конструкции
  • Ctrl + / — закомментировать строку
  • Ctrl + Alt + T — обертка для выделенного слова
  • Alt + Z — перенос строк (пользовательская настройка Soft-wrap)
  • Alt + J — выбор такого же выделенного объекта
  • Alt + Shift + J — отмена выбора выделеного объекта
  • Ctrl + F — поиск
  • Ctrl + R — поиск и замена
  • Shift два раза — меню поиска
  • Ctrl + N — поиск классов
  • Ctrl + Alt + Shift + N — поиск символов
  • Ctrl + Shift + I, F4 — посмотреть код функции не заходя в нее, перейти в нее
  • Ctrl + F4 — закрыть все вкладки
  • Ctrl + E — последние файлы
  • Alt + P — переключение между проектами (пользовательская настройка manage projects)
  • Alt + Home — показать навигацию
  • Ctrl + Shift + V — история копирования
  • Ctrl + Tab — меню быстрого переключения модулей программы
  • Ctrl + F12 — структура кода
  • Ctrl + Alt + G — меню гит (пользовательская настройка vcs operations)
  • Ctrl + Alt + Z — откатить git commit
  • Ctrl + Shift + ` — ветки гита
  • Shift + Alt + F10 — запуск задач
  • Shift + F10 — последняя задача
  • Alt + C, Alt + S — плагин Scratch
  • Alt + C, Alt + A — создания заметок в плагине Scratch
  • Alt + C, Alt + S — выбора заметок в плагине Scratch
Предыдущая статья Настройка Git Следующая статья Настройка Visual Studio Code