Как сделать коммит в phpstorm

Обновлено: 06.07.2024

Используем PhpStorm для разработки
На текущий момент есть много замечательных IDE с поддержкой PHP/JS/HTML, но я с давних пор пользуюсь
PhpStorm
Далее - подробная инструкция как начать работу с этой замечательной IDE.
[spoiler]

Рассмотрим самый простой вариант - битрикс уже развернут на хостинге, есть ftp/sftp доступ. Создаем новый проект:

Выбираем создание проекта из исходников, доступных по ftp:

Задаем название проекта, папку, где будет находиться проект и обязательно выбираем "custom":

В дополнительных настройках много пунктов, нам потребуется изменить следующие:
"Upload changed files automatically to the default server" - "Always" - загружать измененные файлы на сервер
"warn when uploading over newer file" - "Compare content" и "Notify about remote changes" - полезно, если над проектом работает больше одного разработчика - phpstorm будет предупреждать об изменениях файлов на сервере, это поможет избежать перезаписи изменений друг друга.


Настраиваем параметры соединения:


Далее - необходимо указать корневую папку сайта на сервере (Project root) и исключить все остальные папки(или по крайней мере папку bitrix. Иначе скачивание проекта может занять несколько часов, проще это позже сделать в фоновом режиме).


Открываем в правой части экрана вкладку "Remote Host" и заходим в настройки (иконка с тремя точками рядом с названием подключения). Во вкладке "Excluded path" удаляем из исключений все локальные папки


Теперь можно выкачивать все остальное - для этого удаляем папку из исключений (правый клик, Remove path from excluded) и выкачиваем в проект(Download from here)


Проект готов к работе:

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

  • Генерация html, посмотреть можно здесь
  • Автоформатирование кода (особенно актуально, если приходится разбирать стандартные компоненты и шаблоны битрикса)
  • LiveEdit


Еще одной киллер-фичей являются сниппеты для подключения компонентов. Для этого необходимо установить bxCompSnpt и добавлять компоненты из IDE простым нажатием комбинации Ctrl+J


Всем привет! Мы рады представить вам второй мажорный релиз PhpStorm в этом году!

Обзор релиза можно посмотреть на странице “What’s new”. А под катом подробный разбор всех заметных изменений и новых возможностей. (Осторожно — очень много картинок!)

PHP 7.4: типизированные свойства

PHP 7.4 обещает быть самым крутым и богатым на новые возможности релизом со времен PHP 7.0! Посмотрите на все принятые в нем RFC.

Самая ожидаемая фича это, конечно же, типизированные свойства, и PhpStorm 2019.2 уже полностью их поддерживает! Включая подсветку, вывод и резолв типов, а также всевозможные проверки.

Если вы попытаетесь положить в свойство что-то не то — PhpStorm сразу об этом предупредит.


А вот чтобы подготовиться к миграции на PHP 7.4, который выйдет в конце ноября, в PhpStorm есть быстрые фиксы. Для объявления типа можно нажать Alt+Enter на свойстве без типа и выбрать Add declared type for the field. PhpStorm определит тип свойства на основе информации в PHPDoc, дефолтном значении или декларации типа аргумента, если свойство внедряется через конструктор.

Оператор ??= (null coalesce assign)

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

В PhpStorm, само собой, поддерживается синтаксис, но еще есть быстрый фикс Alt+Enter для того, чтобы заменить ?? там, где это возможно:

Оператор распаковки (. ) в массивах

PHP поддерживает распаковку аргументов с помощью оператора … еще с версии 5.6. В предстоящем релизе PHP оператор можно будет использовать и в массивах:


PhpStorm проанализирует использование оператора на корректность и удостоверится, что вы распаковываете только массивы или объекты Traversable и не пытаетесь по ошибке сделать что-то не поддерживаемое интерпретатором PHP:


В следующем релизе PhpStorm 2019.3 мы планируем реализовать полную поддержку и быстрые фиксы для всех новых возможностей PHP 7.4, включая стрелочные функции, разделители в числовых литералах и др.

Автовнедрение регулярных выражений в PHP

В предыдущих версиях PhpStorm регулярные выражения в PHP-коде по умолчанию никак не подсвечивались и отображались как обычные строки. Конечно, можно было внедрить язык RegExp вручную, но не будешь же делать это по всему проекту.

В PhpStorm 2019.2 добавлена полная поддержка регулярок в PHP! Это значит, что там, где в коде используются функции preg_*, шаблоны будут подсвечиваться и проверяться на валидность.


Более того, теперь можно протестировать регулярное выражение прямо в IDE! Наведите указатель на шаблон, нажмите Alt+Enter и вызовите Check RegExp.


Подсветка дублированного кода на лету

Поиск дубликатов в PhpStorm есть уже довольно давно, в меню Code → Locate Duplicates. Если вы пока его не пробовали, попробуйте — и удивитесь, как много повторений может быть в проекте!

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

Вы сможете перейти к другому дубликату или просмотреть все списком в отдельном окне:


Новая инспекция называется Duplicated code fragment и включена по умолчанию. Порог чувствительности можно установить в разделе Preferences | Editor | Inspections | General | Duplicated code fragment → PHP. А в Preferences | Editor | Duplicates можно установить, какие элементы будут игнорироваться при поиске дубликатов, например можно не учитывать разные имена переменных, методов или свойств, а также значений констант.

Поддержка формата PHPT

Хотели бы контрибьютить в сам PHP и присоединиться к PHP Internals? Лучший способ — начать с документации и тестов! К счастью, для этого нет необходимости знать C. Тесты для PHP пишутся в специальных файлах .phpt. По сути, это текстовый файл, разбитый на несколько секций, некоторые из которых могут содержать PHP-код.

Так вот, в PhpStorm 2019.2 есть и поддержка phpt-файлов! Секции подсвечиваются, PHP и INI автоматически внедряются там где нужно, работают переходы на внешние файлы в соответствующих секциях.


Запуск Composer через любой PHP-интерпретатор

Ранее для запуска Composer всегда нужен был локальный интерпретатор PHP. Проблема в том, что его может не быть вовсе или окружение может не соответствовать продакшену. Теперь в PhpStorm 2019.2 запускать Composer можно через любой интерпретатор, сконфигурированный в IDE. Например, через Docker, Docker-compose, Vagrant или, скажем, удаленный сервер по SSH.

Чтобы попробовать эту возможность, выберите Remote Interpreter в настройках Preferences | Languages & Frameworks | PHP | Composer.

Alt+Enter и выбрать Split comma-separated values into multiple lines:

Если вдруг в результате рефакторинга список стал короче и помещается в одну строку, то обратное действие тоже доступно: Join comma-separated values into a single line.

Конструкция switch

Мы реализовали возможность быстро добавлять ветки в конструкции switch. Нажмите Alt+Enter на выражении case без тела и вызовите Copy ‘switch’ branch.

Не забудьте отредактировать скопированную ветку, иначе PhpStorm будет подсвечивать повторяющийся кусок:

Также PhpStorm 2019.2 предупредит, если в switch нет дефолтной ветки, а добавить ее можно также с помощью быстрого фикса.

Манипулирование строками

PhpStorm поможет с рутинными операциями над строками. Что бы вам ни пришлось делать со строкой — разбить на части, изменить кавычки, конвертировать конкатенацию в sprintf или интерполяцию, или что-либо еще — жмите Alt+Enter на строке и выбирайте нужное действие из списка.

В этом релизе мы добавили пару новых фишек в этот список.

Предположим, у вас есть длинное выражение в sprintf , и вам нужно добавить еще один параметр вместо подстроки. Выделите ее, нажмите Alt+Enter , выберите Extract selected string part as format function argument, и PhpStorm поставит параметр в нужном месте:

Также можно отделить подстроку конкатенацией:

Предпросмотр для структурного поиска (Structural Search)

Структурный поиск, или коротко SSR, — это мощный инструмент, который позволяет искать куски кода не только как текст, но как маленькие синтаксические деревья, при этом указывая типы узлов или другие фильтры. Попробуйте его: Edit → Find → Search Structurally…

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

Представьте, например, что вы хотите найти все вызовы определенного метода у класса, но только такие, в которых в качестве параметра передается объект другого определенного класса. Обычным поиском найти такое будет сложно, а с SSR — на раз!

Поддержка формата cURL

Почти все веб-инструменты для разработки и документации сейчас предоставляют возможность скопировать запрос как cURL-строку.

Допустим, вы тестируете сервис и делаете запрос, чтобы аутентифицироваться, а затем в следующем запросе вызываете закрытый эндпоинт. Раньше куки-файл с информацией о сессии из первого запроса был бы утерян. А в 2019.2 все куки сохраняются и передаются в последующих запросах.

Если вы не хотите, чтоб куки сохранялись, используйте тег @no-cookie-jar для конкретного запроса.

Version Control

Новый способ коммита без диалога

Предположим, вы изменили несколько файлов в разных папках проекта. Чтобы закоммитить их, вы идете на вкладку Local Changes окна Version Control, выбираете нужные файлы и вызываете диалог коммита. В этот момент все блокируется всплывающим окном, и вы не можете посмотреть проект.

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


Фича отключена по умолчанию. Чтобы попробовать ее, поставьте галочку “Commit from the Local Changes without showing a dialog” в Preferences | Version Control | Commit Dialog.

Напоминания о связанных файлах

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


Улучшена работа с .gitignore

PhpStorm поддерживает .gitignore из коробки и подсвечивает игнорируемые файлы в Project view.

Стало чуть легче добавлять в .gitignore . Это можно сделать в окне Version Control, вызвав Add to .gitignore из контекстного меню на файлах, которые еще не добавлены в систему контроля версий.


В самом файле .gitignore теперь есть автодополнение путей, и по Cmd+click файл будет выделен в Project view.


В логе можно прятать колонки author, data или hash.


Сравнение текущего состояния с любой веткой

Для этого достаточно вызвать команду Show Diff with Working Tree из попапа Git Branches, который показывается по клику на имени текущей ветки в правом нижнем углу.

История директорий из Project View

Можно выделить несколько папок в Project View и посмотреть историю изменений для них с помощью команды Git | Show History from из контекстного меню.

Docker

Мы перенесли Docker в новое окно Services. Цель этого окна — собрать в одном месте все соединения и выполняющиеся процессы. Пока по умолчанию в PhpStorm туда входит Docker и соединения с базами данных. Также можно добавить любые Run/Debug-конфигурации в окно Services. Это доступно в секции Configurations available in Services в Run | Edit Configurations…

Все сервисы отображаются как узлы, но каждый из них можно сделать отдельной вкладкой, вызвав Show in New tab или просто перетащив узел заголовок окна Services.

Просмотр файловой системы контейнеров Docker

Навигировать по содержимому контейнера можно на вкладке Files.


Редактор

Дополнение кода при опечатках

Если вдруг вы написали funtcion или fnction вместо function — не страшно, потому что дополнение все равно сработает, так как распознает такого рода опечатки.


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

Конфигурация поведения ‘Move Caret to Next Word’

Можно выбрать, куда будет ставиться указатель при перемещении по словам.Смотрите раздел Caret Movement в Preferences | Editor | General.

Cmd+N/Alt+Insert) и пачку лайв-темплейтов ( Cmd+J/Ctrl+J) .

Также реализована интеграция с несколькими внешними инструментами.

Для поиска потенциальных проблем в скриптах PhpStorm предложит установить Shellcheck, который находит тонну проблем и предоставляет быстрые фиксы для них.

Также в PhpStorm 2019.2 интегрируется с инструментом mvdan/sh для форматирования shell-скриптов. Когда вы вызовете Reformat Code в первый раз, IDE предложит установить его и затем будет правильно форматировать.

И, наконец, есть интеграция с сайтом Explainshell. Можно выделить любую команду, нажать Alt+Enter и выбрать Explain shell. IDE перенаправит на Explainshell, где можно будет посмотреть, что значит выбранный набор. При наведении на команду прямо в IDE также отображается хелп.

EditorConfig

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

Раньше в PhpStorm требовалось установить плагин EditorConfig, но в 2019.2 он доступен из коробки и дополнительных действий не требуется.

Вы можете использовать задавать разные настройки для разных подпапок в проекте. Просто создаете в нужных папках файлы .editorconfig — их в проекте может быть сколько угодно.

Кроме стандартных для EditorConfig опций, можно конфигурировать почти все опции стиля, специфичные для PhpStorm. Раньше их можно было конфигурировать только из UI. Такие опции обозначаются префиксом ij_ , чтобы отличаться от стандартных.


Если вы создаете новый файл .editorconfig из Project View, то PhpStorm предложит вам выбрать, какие опции включить в созданный файл. Они будут добавлены закомментированными, и нужные можно раскомментировать и поменять.

Внешний вид

Больше информации в Project View

Можно включить отображение размера и даты изменения файлов в Project View с помощью View -> In-place Descriptions.


Новый вид всплывающей подсказки для инспекций

Всплывающая подсказка теперь не только описывает проблему, но и предлагает первый фикс из списка. Чтобы применить его мгновенно, даже без подсказки и клика, нажмите Alt+Shift+Enter . Чтобы посмотреть все доступные фиксы, нажмите Alt+Enter .


Обновленный UI на Windows

Свежий безрамочный вид на Windows 10:


PhpStorm, как всегда, включает в себя все обновления из WebStorm и из DataGrip. А полный список изменений можно найти в очень больших release notes.

И, напоследок, короткий ролик (на английском) с демонстрацией главных фич релиза:

На этом все на этот раз. Спасибо, что дочитали до конца! Вопросы, пожелания, баг-репорты и просто мысли высказывайте в комментариях! Будем рады ответить.

Речь в статье идет о последней на момент ее написания версии, восьмой. Так же я использую PhpStorm на Windows, поэтому и все хоткеи буду писать с упоминанием Ctrl и Alt. Если у вас Mac, скорее всего вместо них можно жать CMD, либо придется порыться во вкладке Keymap настроек.

Автогенерация кода

Довольно банальная функция, но многие о ней и не подозревают. Поставьте курсор внутрь класса и нажмите Alt + Insert. Появится меню автогенерации кода. Можно создавать конструкторы, геттеры/сеттеры (сразу для нескольких выбранных вами свойств), PHPDoc блоки, а так же реализовывать методы интерфейсов или переопределять методы родительского класса.

Очень удобно работает реализация/переопределение методов. Автоматически именуются параметры и создается PHPDoc. Так же можно по-быстрому вызвать только переопределение методов (Ctrl + O) или только реализацию иинтерфейсов (Ctrl + I).

Понажимайте Alt + Enter в различных положениях курсора. Например, на неимпортированном классе, это позволит автоматически импортировать его. А вообще это мега сочетание, которое умеет очень многое.

Форматирование кода

Совсем очевидная фича, но некоторые о ней не знают. По нажатию Ctrl + Alt + L осуществляется автоформатирование текущего файла, либо выбранного фрагмета кода. Если в дереве проекта выбрать файл и нажать то же сочетание, то он полностью будет отформатирован. Можно так же выбрать папку и будет отформатирована все файлы в этой папке.

Рефакторинг

PhpStorm умеет кучу всего: выделять одинаковые участки кода в метод (Extract -> Method), выделять участки кода в переменную (Extract -> Variable), выделять поля и константы. Просто покапайтесь в разделе Refactoring. Или есть прекрасная статья на эту тему.

Переключение проектов

Стандартный механизм переключения проектов не слишком удобен. Я советую использовать Frame Switcher для быстрого переключения между проектами.

Задачи

Если вы еще не пользуетесь системой контроля версий в PhpStorm, то самое время начать. Именно потому, что в этой IDE реализована потрясающая система разбиения текущих изменений на задачи (tasks).

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

PhpStorm решает эту проблему за вас. Все что вам нужно, создать отдельную задачу (Task) или Changelist (не понял в чем между ними принципиальная разница, если кто-то объяснит, опубликую), назначить его активным и сделать быструю правку. При этом вы увидите, что PhpStorm отнесет изменения в файлах к вашей активной задаче. А если вы случайно затроните файлы из другой параллельной задачи, то увидите предупреждение.


Быстрое открытие файла аля SublimeText

По Ctrl + N можно быстро открыть файл с нужным классом, а по Shift + Ctrl + N вообще любой файл по имени. А через Ctrl + Shift + Alt + N можно найти любой "символ", т.е. переменную, функцию и т.п.

Метки в проекте

Нажимая Ctrl + Shift + 0..9 можно оставлять в проекте метки. Чтобы быстро перейти к какой-либо метке нужно нажать Ctrl + 0..9 (номер метки).

Быстрое обертывание

Выделив фрагмент кода и нажав Ctrl + Alt + T можно быстро обернуть блок в if-else или какой-либо цикл. Так же при редактировании HTML срабатывает Ctrl + Alt + Enter. Это обертывание с помощью Emmet.

Сравнение двух файлов

PhpStorm имеет очень няшное окно diif-а, т.е. сравнения двух файлов. Если в дереве проекта выделить пару файлов и нажать Ctrl + D, то можно сравнить содержимое этих двух файлов.

Список использований

Не уверены, используется ли где-то ваш метод? Поставьте на него курсор и нажмите Ctrl + F7. Появится список использований метода, переменной или другого "символа". Можно использовать Ctrl + Alt + F7, тогда список появится в виде контекстного меню, что иногда чуть удобнее.

Быстрый переход к объявлению

Все вкурсе, что по Ctrl + клик можно перейти к определению "символа". Но по нажатию Ctrl + Alt + Left можно вернуться назад. А по Ctrl + Shift + Backspace можно вернуться к последнему месту редактирования кода, если вы вдруг заблудились в длинном скролле.

Мульти буфер обмена

Как часто бывало, что скопированное в буфер терялось из-за еще одного копирования? PhpStorm из коробки запоминает все что было в буфере и можно использовать Ctrl + Shift + V для вставки прошлых значений.

Автогенерация спрайтов

Автоматическая генерация CSS спрайтов не доступна из коробки, однако настраивается за 15 минут без особых проблем. В итоге вы получите полностью автоматическое создание PNG спрайтов с готовыми CSS/LESS стилями.

githuboctacat

В разработке я использую PhpStorm, мне очень нравиться эта IDE (я перепробовал очень много), вот и решил разобраться, как работает она с Git.

Для того, чтобы настоит работу с Git в PhpStorm нужно сделать следующее:

3. Далее нужно настроить переменные среды.

nastroika_git_php_storm
nastroika_git_php_storm_2
nastroika_git_php_storm_3

nastroika_git_php_storm_4

4. Далее нужно настроить PhpStorm

Читайте также: