Фишки PHP Storm. Разновидности поиска

Одна из самый ценных функцию в PHP Storm — это встроенные инструменты поиска. Ниже представлены комбинации клавиш для вызова различных способов поиска.

[SHIFT] + [SHIFT]

Искать везде!

[CMD] + N – Find by Class Name

Поиск по имени класса. Удобно в больших проектах, когда всё зарыто вглубь директорий или просто неизвестно где находится. Убойности добавляет «умный поиск», т.к. ищется как по части названия класса, так и по первым буквам, например SomeVeryLongClass будет найден по «SVLC». Учитывает регистр букв, будьте внимательны.

«Умный поиск» разработчики называют Camel's Hump. Кстати в настройках можно сделать чтобы выделение слов, а также перемещение осуществлялось не целиком (до пробела), а именно по по словам (до заглавной буквы).

[CMD] + [SHIFT] + N – Find by File Name

Поиск по имени файла. Аналогично поиску по имени класса использует «умный поиск». Для нахождения файла по вложенности можно использовать слеш: some/deep/dir/with/file.txt найдется по «s/d/d/w/f»

[CMD] + [SHIFT] + [ALT] + N – Find Symbol

Поиск любой функции/метода и констант, очень удобно, когда точно помнишь имя метода, а класс нет.

[ALT] + [F7] – Find Usages

В момент когда курсор находится на имени класса или метода нажатие хоткея позволяет найти все использования в проекте или определенной части (Scope).

[CTRL] + [ALT] + [F7] — тот же поиск по использованиям, но в виде контекстного меню.

[CTRL] + [SHIFT] + F – Find in Path

Поиск произвольной фразы по файлам проекта. При рефакторинге обычно хорошо дополняет Find Usages.

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

 

Фишки PHP Storm. Tasks

Использование систем контроля версий уже давно стало признаком хорошего тона. Но часто бывает проблема, когда работа ведется над несколькими задачами параллельно или прибегает кто-то и срочно просит исправить воооот этот баг прям-вот-щяс. Очень легко можно забыть закоммитить нужный файл или наоборот, в коммит попадают лишние файлы или изменения которых там быть не должно.

Избежать этого и внести порядок в работу можно с помощью Tasks. Суть в том, что у каждой задачи есть свой Change-лист, в котором указаны файлы с изменениями и переключаясь между задачами сразу видно, с какими файлами работали по этой задаче и что нужно не забыть.

Другой положительный момент, что IDE предупреждает, если вы в рамках одной задачи начинаете править файл, уже затронутый в другой.

Добавляет удобства, что при коммите в него автоматически попадают все файлы из текущего change-листа + в комментарий подставляется название задачи.

Хорошо если у вас уже есть багтрекер типа Jira или Redmine, если нет, на том же GitHub есть довольно простая система баг-трекинга, также поддерживаемая PHPStorm. Это позволяет подгрузить номер, название и описание уже существующей задачи по которой вы работаете прямо в IDE, хотя ничто не мешает не пользуясь трекером создавать произвольные change-листы

Фишки PHP Storm. Автоформатирование кода

Я по своей натуре перфекционист, и, очень люблю когда код структурировал, соблюдены все отступы — т.е. все ясно и понятно.

Когда работал программистом, очень много времени тратил на то, чтобы привести в порядок код. Недавно узнал про Автоформатирование кода в PHPStorm! Да я прозрел!!! 😀

Ближе к делу [CTRL] + [ALT] + L и IDE отформатирует код в соответствии с настройками (Preferences -> Project Settings -> Code Style -> PHP)

По-умолчанию, нажатие горячей клавиши форматирует файл целиком. Если выбрать область, то форматируется только выбранное вами место (selection). Если выбрать в дереве папку или весь проект, можно сразу привести в порядок всё сразу.

Для каждого языка можно задать свой стиль оформления, причем для PHP также можно выбрать один из предзаданных стилей:

  • PEAR
  • Zend
  • Symfony
  • Drupal
  • PSR1\PSR2
  • WordPress

Удачи!

Фишки PHP Storm. Множественные курсоры в выделение

PhpStorm предоставляет очень удобный инструмент для разработчика — Множественные курсоры и множественное выделение

Для того, чтобы расставить курсоры можно с помощью Alt+Click; добавить следующее совпадение в выделение: Alt+J для Windows и Ctrl-G для Mac; удалить совпадение из выделения: Alt+Shift+J для Windows и Ctrl-Shift-G для Mac; удалить все выделения и курсоры: Esc.

Ускорение PhpStorm, способ 2 — вынос кэша в оперативную память (ОЗУ) устройства

За способ большое спасибо Max Payne, описанный здесь

Суть способа заключается в том, чтобы весь кэш программы PhpStorm вынести из ПЗУ* в ОЗУ*. Данный способ, к сожалению, а может и к счастью, работает только под Linux!

За его работу отвечает shell скрипт, который автосинхронизирует все данные из кэша в ОЗУ. Я не буду переписывать инструкцию, а просто дам ссылку на github автора. Все очень просто: https://github.com/iusmac/phpstorm_icache

Удачи!

* ОЗУ — оперативно запоминающее устройство, RAM или оператива 🙂 кому как удобно.
* ПЗУ — постоянно запоминающее устройство или HDD — жесткий диск.

Трюки и полезные моменты при работе с PhpStorm

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

На видео Роман Пронский рассказывает о том, как можно прокачать себя. Видео оставляю ниже (на авторство не притендую 🙂 если что). (далее…)

Как в PhpStorm изменить оформление. Версия >= 2018.2.1

Есть несколько путей.

1. После установки PhpStom вам софт предложит выбрать визуальное представление, вы можете сделать это сразу

2. Вариант через изменение настройки программы

2.1 Откройте PhpStom

2.2 Перейти в настойки программы File -> Settings (Ctrl + Alt+ S).

2.2 Далее в левой колонке найти Apperarance & Behavior -> Apperarance -> Theme выбрать нужную вам тему UI:

2.3 PhpStorm позволяет также отдельно изменить тему редактора кода Editor -> Color Scheme:

Profit!

Дополню, вы можете развернуть Color Scheme и удобно настроить:

  • Размер шрифта
  • Цвет ссылок
  • Цвет комментариев
  • ... и т.д.