В данной статье я хочу описать несколько настроек, которые я изменил в PhpStorm для удобства работы. PhpStorm можно настроить под себя один раз, а потом использовать включенный в программу удобный экспорт/импорт настроек, с помощью которого можно переносить настройки с одного ПК на другой или сохранять их при переустановки ОС.

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

Настройки проекта меняются при открытом проекте, достаточно открыть настройки (File -> Settings) и большая часть настроек будет относиться к открытому проекту.
Чтобы сделать настройку общей для IDE и применять её автоматически для всех новых проектов необходимо закрыть проект и нажать на Configure -> Settings

Настройка PhpStorm

Замена пробелов на табуляцию

В своих проектах я использую отступы в виде табуляции, PhpStorm по-умолчанию делает таб из четырёх пробелов. Поэтому это первая настройка, которую я поменял.

Чтобы PhpStorm создавал таб из табуляции, а не из 4 пробелов необходимо зайти в настройки (File -> Settings), открыть вкладку Editor -> Code Style.
Нас интересуют вкладки PHP и HTML (конечно вы можете поменять настройку и для других типов файлов). Выделяем вкладки по очереди и ставим галочку напротив пункта Use tab charater.

Мы можем сделать это настройкой проекта или настройкой для всех новых проектов. Я делаю это как настройка для всех новых проектов, для этого в выпадающем списке Scheme выбираю значение Default IDE.

Чтобы видеть табуляцию и пробелы в открытом файле заходим все в те же настройки, выбираем Editor -> General -> Appearance ставим галочку напротив Show whitespace.

Защита от перезаписи

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

PhpStorm может проверять не изменился ли файл на сервере. Открываем настройки Build, Excution, Deployment -> Deployment -> Options

В опции Warn when uploading over newer file выбираем значение Compare content и ставим галочку напротив пункта Notify of remove changes.

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

При нажатии Merge and upload мы можем сравнить файлы и загрузить файл содержащий изменения, внесённые нами и изменения, которые появились на сервере.

В появившемся окне есть три столбца, левый это ваш файл, правый это файл на сервере, центральный — это то, что загрузится на сервер после нажатия кнопку Merge and upload

Также рекомендую изменить опцию Upload changed files automatically to the default server на значение On explicit save action (Ctrl+S)
С данной опцией будет происходить автоматическая загрузка файла на сервер при нажатии комбинации клавиш Ctrl + S

PhpStorm загружает на сервер загруженные на локальный компьютер папки

Во время работы PhpStorm я столкнулся с интересной особенностью, созданные в проекте файлы имеют приоритет на удаленными файлами (файлами сервера), что может привести к затиранию папок на сервер. Например если вы перенесли в папку проекта папку, с таким же названием как на сервере. Чтобы избежать подобного поведения заходим в настройки Build, Excution, Deployment -> Deployment -> Options и ставим галочку напротив пункта Skip external changes