Начинаем работать в JetBrains PhpStorm / Хабрахабр


16 января в 12:25

Начинаем работать в JetBrains PhpStorm tutorial

Хочу рассказать как быстро и эффективно начать работать в прекрасной интегрированной среде разработки (IDE) — PhpStorm. Полный цикл создания проекта и его базовой настройки — далее в этой статье.

 



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


Создание проекта



При первом запуске программы мы увидим такое окно:







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



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



Делаем новый проект для такого сценария:

Нажимаем Create New Project from Existing Files:







Выбираем пункт Web server is on remote host, files are accessible via FTP/SFTP/FTPS:







Даем имя новому проекту и обязательно выбираем радио-кнопку Custom, для того чтоб задать первоначальные настройки проекту. Жмем Next







Появится такой экран:







На этом экране нам нужно указать 3 важные настройки: Upload changed files automaticaly to the default server ставим On explict save action. Эта настройка, если ее не выставить — довольно опасная штука, за которой все время нужно следить, иначе можно одним прекрасным днем угробить проект на продакшене (удалил папочку в локальной копии и наша IDE автоматически это все синхронизировала с сервером)



Очень важно!!!

Следующая настройка — Wharn when uploading over newer file ставим Compare timestamp & size, а так же выбираем галочку внизу Notify about remote changes. Будет подсказывать предупреждение при попытке перезаписать файл, который поменял например ваш коллега. В таком случае нужно мержить вашу локальную копию с копией на сервере.



Нажимаем Next, переходим к настройке доступа к серверу, с которым будем работать


Настройка доступа к серверу







Выбираем Add New Remote Server и нажимаем Next:







Видим настройки нового сервера. Тут вводим нужные пароли, название для серевера (как он будет отбражаться в списке в IDE) и не забываем нажать галочку Save password, если не хотите вводить пароль каждый раз при деплое.

Для проверки правильности введенных параметров можно нажать на кнопочку Test FTP connection и получим сообщение о том, правильные мы данные ввели или нет. Нажимаем Next.



Видим список каталогов сервера. Тут нам нужно указать корень проекта (Project Root). Выбираем нужный нам каталог и обозначаем его корнем с помощью кнопки на верхней панели.







Папки приобретут зеленую подсветку. Это значит, что все они буду скачаны в локальную копию, а этого нам совсем не нужно.







Как видно, у нас активировались дополнительные кнопки на панели сверху: Excluded from download, Resource root, Exluded from Indexing.






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



Важно! Чтоб сэкономить время и сделать все по-нормальному мы на данном этапе не будем скачивать файлы вообще, а сделаем это потом в фоновом режиме, когда проект создастся (так как на данном этапе мы ничего не сможем сделать пока файлы не скачаются).



Тем более, если мы все-таки захотим забрать себе какой-то каталог, то нам нужно обязательно выделить корень проекта, а это значит, что все файлы в корне (типа index.php, .htaccess и тд.) будут тоже скачаны. А теперь пример: добрый заказчик держит архив с последним бекапом в корне сайта. Нам придется скачать и его, а это нонсенс.

Короче выделяем все папки и жмем Excluded from download и нажимаем Next и Finish на следующем экране.



Красота, проект создан! Но у нас по-прежнему нет файлов. Теперь нам доступна вкладка Remote Host справа на панельке:







У кого нет, включаем ее в главном меню Tools -> Deployment -> Brows Remote Host:







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



Нажимаем кнопку настроек в верхней панели (1). Далее переходим в Deployment (2), выбираем только что созданный сервер (3), переходим на вкладку Excluded Paths. И удаляем все записи с иконкой коричневой папки, это локальные пути (удалять кнопочкой Remove path внизу). Применяем настройки:







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


Закачка нужный файлов и каталогов



Теперь нам нестрашны возможные бекапы клиентских сайтов в корне сервера, так как мы теперь видим во вкладке Remote Host не только каталоги, но и файлы, которые мы можем исключить из загрузки.



Давайте скачаем какой-то каталог с файлами. Открываем вышеупомянутую вкладку. Выделяем нужный каталог и кликаем правой кнопкой мыши по нему. В меню будет пункт Remove Path from Excluded, который нам и нужен.







Но вот какие дела! Теперь то и родитель его (в данном случае корневой каталог, а значит все-все файлы и папки) тоже исключился и добавился в закачку! Что нам перерь нужно сделать: выделить все каталоги и файлы (кроме корневой папки) и с помощью Ctrl+клик снять выделение с тех каталогов и файлов, которые нам нужно(!) скачать:







Теперь кликаем по какой-нибудь выделенной папке правой кнопкой мыши и исключаем их из загрузки.



Далее выбираем нужную для скачки папку и нажимаем Download from here:







Все, каталог загрузится и проиндексируется. Он теперь доступен в дереве каталогов проекта слева. А так же все файлы в нем. Загрузка изменений файла обратно на сервер произойдет при сохранении его в программе (как и было указано в настройках в самом начале).

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

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

Проголосовало 299 человек. Воздержалось 56 человек.

 
 

–21

 

 
11152
69
rodion_arr –2,5
 
 
 

Комментарии (25)

 

   

+24
 

diwms,

16 января 2014 в 12:33

#  

 
 
Детский сад.
 
 

   

+3
 

Dolios,

16 января 2014 в 12:35

#  

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

   

0
 

rsi,

16 января 2014 в 19:10

#

 

 
 
Буду крайне благодарен если подскажите как поставить Git на виртуальный хостинг к клиенту, где нет рут прав.
 
 

   

0
 

rodion_arr,

16 января 2014 в 19:19

#

 

 
 
Надеюсь поможет это руководство — joemaller.com/908/how-to-install-git-on-a-shared-host/
 
 

   

0
 

megahertz,

17 января 2014 в 11:17

#

 

 
 
На сервере может вообще не быть гита, главное чтоб был ssh. Хотя такой сценарий работы с репозиторием не самый комфортный
 
 

   

0
 

deadkash,

16 января 2014 в 12:36

#  

 
 
Сильная сторона PhpStorm это индексация проекта, построение структуры проекта. Поэтому я либо делаю локальную копию и автоматический аплоад, либо, что бывает, чаще в убунту монтирую папку по ssh и работаю с проектом как локальным. Если что-то быстро поправить — обычные текстовые редакторы типа Notepad++ или Geany.
 
 

   

+1
 

diwms,

16 января 2014 в 12:38

#

 

 
 
Notepad через wine или они выпустили версию под linux?
 
 

   

0
 

deadkash,

16 января 2014 в 12:41

#

 

 
 
Notepad на windows я имел ввиду. Для linux вроде не выпускали.
 
 

   

0
 

int22h,

16 января 2014 в 12:39

#  

 
 
Лучше б сделали туториал по полезным хоткеям и каким то фишкам
 
 

   

+9
 

fcunited,

16 января 2014 в 13:29 (комментарий был изменён)

#

 

 
 
Полезный читшит: www.jetbrains.com/phpstorm/documentation/PhpStorm_ReferenceCard.pdf



Лично я чаще всего использую:



Ctrl+Q на названии функции — выдает доку по функции

Ctrl+P на параметре фунциии — выдает описание параметра

Shift+F1 на названии функции — переходит по ссылке, если такая была привязана к функции (для нативных PHP-функций переходит на php.net/function.name)



Alt+стрелки вверх/вниз — перемещение между методами класса



Ctrl+Alt+стрелки влево/вправо — перемещает вперед/назад между местами кода, которые только что просматривались



Ctrl+E, Ctrl+Shift+E — недавно просмотренные/редактированные файлы



Ctrl+Shift+F — поиск по проекту

Ctrl+Shift+N, double Shift — быстрый и очень удобный поиск по файлам



Ctrl+/ — закомментить/раскомментить выделенный код/строку



Ctrl+D — дублировать выделенный код/строку



/** и Enter перед названием функции — автоматическое формирование PHPDoc



Ctrl+Shift+U — выделенный код к верхнему или нижнему регистру



Ctrl+Shift+V — последние 5 записей в буфере



Alt+F7 на функции — найти места вызова функции



F11 — добавить/убрать bookmark (появляется справа черная засечка)
 
 

   

0
 

int22h,

16 января 2014 в 13:44

#

 

 
 
Благодарю, большинство уже использую. Но парочку не знал ранее)
 
 

   

0
 

Devgru,

16 января 2014 в 15:39

#

 

 
 
Один из полезнейших хоткеев — Ctrl+W, выделение, его нужно жать несколько раз подряд, пока не выделит все что нужно 🙂



Ну и Shift, Shift это поиск по всему, он лучше чем Ctrl+Shift+A (действия) или Ctrl+Shift+N (только файлы).
 
 

   

0
 

fcunited,

16 января 2014 в 15:58

#

 

 
 
Еще забыл одну из самых полезных фичей — Ctrl+Alt+L — авто-формат выделенного кода (правила форматирования очень гибко настраиваются в настройках)
 
 

   

+1
 

Devgru,

16 января 2014 в 18:15

#

 

 
 
На Ctr+Alt вообще куча полезного из рефакторинга, если уж на то пошло, в чит-шите выше описано. Серьёзно ускоряет написание кода.
 
 

   

+3
 

HangGlider,

16 января 2014 в 12:40

#  

 
 
Такая схема работы подойдет для совсем зеленого новичка. Если планируете работать в команде, ковыряйте, например, в сторону git+gitlab+ci. И уже из гитлаба вытягивайте проекты на диск или в песочницу на сервер разработки.
 
 

   

+2
 

SiDChik,

16 января 2014 в 12:48

#  

 
 
Вся статья могла уместиться в одно предложение о том, что phpstorm умеет работать с файлами через ssh/ftp и тд, проверяя изменения и автоматически выкладывая их. И все… А так из разряда: итак, это Джонни Котсвилл и мы запускаем PHPSTORM
 
 

   

0
 

imgen,

16 января 2014 в 13:31

#  

 
 
всё это можно уместить в пять строк

git init

git push

git pull

git clone

git commit -m
 
 

   

0
 

DenimTornado,

16 января 2014 в 14:21

#  

 
 
А вот такой вопрос, есть огромной проект, в гит и картинки и бэкапы и куча всего. Можно ли держать под версионным контролем в WebStorm только пару папок. То есть я хочу использовать Git в этом проекте, но при попытке апнуться получаю сообщение, что 1800 файлов у меня удалено.
 
 

   

+2
 

imgen,

16 января 2014 в 14:52

#

 

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

   

0
 

DenimTornado,

16 января 2014 в 16:00

#

 

 
 
Это всё прекрасно, только вот на данном этапе руководство сложно убелить.
 
 

   

0
 

Anonym,

16 января 2014 в 17:28

#

 

 
 
 
 

   

0
 

DenimTornado,

16 января 2014 в 17:52

#

 

 
 
Понял, спасибо, значит в данном случае встроенный деплой.
 
 

   

0
 

imgen,

16 января 2014 в 19:04

#

 

 
 
не обязательно встроенный, можно писать скрипты на баше, что бы они деплоили всё за Вас по команде.
 
 

   

0
 

DenimTornado,

16 января 2014 в 19:30 (комментарий был изменён)

#

 

 
 
Зачем, если одной кнопкой можно заливать + есть локал хистори + есть дифф встроенный?
 
 

   

0
 

imgen,

16 января 2014 в 19:49

#

 

 
 
я говорил о статичном контенте, картинки, флешки и т.д.

так как они в 99% случаев лежат в gitignore и деплой делается либо через шторм, либо по ssh через какую-то автоматизацию, параллельно можно склеивать js файлы в grunt, обрабатывать картинки для уменьшения веса в нем же, в общем деплой через скрипты гораздо гибче.
 

Только зарегистрированные пользователи могут оставлять комментарии.

Войдите, пожалуйста.

 
 
Похожие посты
Вышел NetBeans IDE 8.0 Beta 23 февраля в 02:07
Что нового в PhpStorm 6.0 14 марта 2013 в 07:26
Что обсуждают?
 
Компания дня
 
 
 

http://habrahabr.ru/post/209254/

Губарь Маргарита Александровна