Как удалить проект (из рабочей области) в phpstorm?

Понижение контроллера домена

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

Графика

Открываем Диспетчер серверов и переходим в Управление — Удалить роли и компоненты:

Если откроется окно с приветствием, то просто нажимаем Далее (при желании, можно поставить галочку Пропускать эту страницу по умолчанию):

В окне «Выбор целевого сервера» выбираем сервер, для которого мы будем понижать уровень AD:

… и нажимаем Далее.

Снимаем галочку Доменные службы Active Directory. откроется окно в котором отобразится список компонентов для удаления — нажимаем Удалить компоненты:

В следующем окне мы увидим предупреждение о том, что компьютер будет перезагружен и возможность принудительно понизить уровень — просто нажимаем Далее:

Система отобразит роли AD, которые будут удалены. Ставим галочку Продолжить удаление и нажимаем Далее:

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

Кликаем по Понизить уровень:

Процесс займет какое-то время. После мы увидим «Уровень контроллера домена Active Directory успешно понижен»:

Сервер автоматически будет перезагружен.

Powershell

Открываем консоль Powershell от администратора и вводим:

Uninstall-ADDSDomainController

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

LocalAdministratorPassword: **********
Подтвердить LocalAdministratorPassword: **********

Мы получим предупреждение о перезагрузки сервера. Соглашаемся:

После завершения этой операции сервер будет автоматически перезапущен. Когда вы удалите доменные службы Active
Directory на последнем контроллере домена, этот домен перестанет существовать.
Вы хотите продолжить эту операцию?
Да — Y   Да для всех — A   Нет — N   Нет для всех — L   Приостановить — S   Справка
(значением по умолчанию является «Y»): A

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

Подсказки

Ctrl+P
Показать подсказку по параметрам метода или функции. (Parameter Info)
Ctrl+Shift+Enter
Дополнение языковых конструкций (if, switch, for, foreach)
Ctrl+Shift+I
Показать реализацию метода/функции, применяемые стили HTML класса, etc.. (Quick Definition)

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

Ctrl+D
Дублировать строку под курсором.
Ctrl+Shift+D Ctrl+Y
Удалить строку под курсором.
Ctrl+Shift+J
Объединить выделенные строки в одну (multiline to single line). Это упрощает форматирование массивов и HTML тегов.
Ctrl+Alt+R
Отформатировать код.
Ctrl+Shift+↑↓
Меняет строки местами, перемещает текущую строку вверх/вниз.
Ctrl+Alt+J
Обернуть HTML тегом выделенный текст или текущую строку. Ctrl+Shift+J может не работать, если итоговая строка будет длиннее допустимых 80-160 символов.Настроить допустимую ширину экрана/колонок, Settings » Editor » Code Style, Hard wrap at: 120.

Навигация

Ctrl+B
Открыть файл реализации класса по выделенному имени класса. То же, что и Ctrl+Click.

Ctrl+J
Окно Live Template шаблонов.

Alt+      Alt+
Перемещение между методами класса — предыдущий метод, следующий метод

Ctrl+F12
Окно со списком методов класса (сигнатура класса)

Ctrl+E
Окно с последними измененными файлами

Ctrl+Shift+N
Быстрый поиск и открытие файла (выделите часть имени файла или класса и нажмите сочетание клавиш).

Ctrl+Alt+Shift+N
Быстрый поиск и переход к символу (классу, методу, переменной, константе).  Поиск также работает по первым символам   имени. Например по  будет найдено .

Ctrl+-/+

Свернуть/развернуть (collapse/expand) блок под курсором

Ctrl+Shift+-/+

Свернуть/развернуть (collapse/expand) все

Ctrl+Alt+-/+

Свернуть/развернуть (collapse/expand) все комментарии (это кастомный хоткей)

Alt+Enter
Это универсальный контекстный помощник. Отображает контекстное меню с доступными действиями, в зависимости от того где находится курсор. Тут и:

  • Импорт класса под курсором в секцию ;
  • Обновление блока комментариев по сигнатуре метода;
  • Добавление методов интерфейса, которые необходимо реализовать;
  • Замена кавычек для строк;

Ctrl+W   или  Alt+Shift+

Последовательное выделение области под кареткой. (Select Word at Caret). Я добавил еще и хоткей Alt+A — он сподручней.

Alt+1
Показать/скрыть панель дерева файлов проекта (Project Tool Window)

Alt+2
Я переопределил этот хоткей на панель структуры класса (Structure Tool Window)

Alt+3
Показать/скрыть панель с результатами последнего поиска (Find Tool Window)

Alt+4
Я заремапил этот хоткей на панель консоли (Terminal Tool Window). По умолчанию на этой клавише находится Run Tool Window, а панель терминала вызывалась по Alt+-.

Ctrl+Shift+X
Панель Command Tools Console. Консоль командных инструментов как-то Composer, Symfony 2 (app/console), Laravel (artisan), etc.. Есть поддержка дополнения кода.

Shift+Escape
Скрыть текущую активную панель (Hide Active Tool Window). Я добавил на этот экшн просто клавишу Escape.

Ctrl+Tab
Переключение между 2-мя последними вкладками редактора.

Закладки (Bookmark)

Ctrl+F11илиF11Поставить закладку.

Ctrl+Shift+F11
Поставить закладку с указанием мнемоники (идентификатора, номера закладки)

Shift+F11
Показать закладки

Shift+F6
Переименовать переменную (или теги HTML элемента) везде, где она используется.

Ctrl+Alt+V
Извлечь (вынести) выделенный код в переменную.

Ctrl+Alt+M
Извлечь (вынести) выделенный код в метод

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

Alt+F7
Найти в проекте все (явные) места, в которых используется класс, метод, свойство, ф-ция (под курсором).

Ctrl+Shift+O-M
Список magic или родительских методов для переопределения (Override Methods). Переопределил с Ctrl+O.

Окна

F12
Переключить полноэкранный режим (Toggle Full Screen Mode). Переопределил Jump to Last Tool Window.
Ctrl+Shift+P
Быстрый поиск действий (Find Action). Забрал эту комбинацию у действия Expression Type (Show type of the selected expression). Кто знает зачем это действие?
Ctrl+O
Открыть файл или проект. Забрал комбинацию у Override Methods.
Примечание

Обнаружил интересный workaround, который позволяет относительно быстро выполнить последний экшен:

  1. Ищем действие по Ctrl+Shift+A, например Toggle Bookmark
  2. Применяем его (ставим закладку)
  3. Жмем Ctrl+Shift+A и Shift+Shift.

Будет применяться последнее вызванное действие.

Ветки и состояние, git branch и снова git status

Все, что нужно знать о ветках, а также дополнительные сведения о текущем состоянии вашего репозитория (помимо файлов, о которых была речь чуть выше), находится в правом нижнем углу phpstorm. Если вы в данный момент находитесь на какой-то ветке, то будет отображено название ветки. Если вы «оторвались от головы» репозитория и перешли на какой-то коммит, то там будет короткий хеш коммита. Если вы находитесь в каком-то особом состоянии типа merge или rebase, то оно тоже будет там показано

При нажатии на эту область вылезает список всех ваших репозиториев, всех их веток (локальных и удаленных), а также опции для работы с ними. Можно переключиться на другую ветку, создать новую, переименовать. Кстати, очень полезная функция — сравнить текущую ветку с одной из выбранных — очень помогает при Code Review

Откроется уже знакомый нам diff-viewer, который позволит просмотреть всю разницу между коммитами.

#[ExpectedValues]

With this attribute, you can specify which values a function accepts as parameters and which it can return.

This is similar to what the function could do in , except that the meta version is more like a completion adversary. The attribute, by contrast, assumes that there are no other possible values for the argument or return value.

For example, let’s take the count function:

The second argument it takes is an integer, but in reality, it is not an integer. Rather it is one of the constants or , which correspond to the and .

You can add an attribute to the second parameter. And this is how the code completion will change in this case.

No meta

With expectedArguments() in .phpstorm.meta.php

With # attribute

How to specify possible values or bitmasks.

Expected values are passed to the attribute constructor and can be any of the following:

  • Numbers:
  • String literals:
  • Constant references:
  • Class constant references:

And there are a few ways to specify expected arguments:

  • means that only one of the values is expected.
  • means that a bitmask of the specified values is expected, e.g. .
  • means that any of the constants from the class « is expected.
  • means that a bitmask of the constants from the class `MyClass` is expected.

# examples

Let’s take a look at the helper in Laravel. It takes the HTTP status code as the second argument.

This leaves us missing two key features:

  • Code completion for possible status codes
  • Validation in the editor

Let’s fix this by adding the attribute

#[Immutable]

Immutable objects are the ones that can not be changed after they are initialized or created. The benefits of using them are the following:

  • The program state is more predictable.
  • Debugging is easier.

It was possible to somewhat emulate immutable objects using getters and setters or magic methods. Starting from PhpStorm 2020.3, you can simply mark objects or properties with the attribute.

PhpStorm will check the usages of objects and properties and highlight change attempts.

You can adjust the write scope restriction to a constructor only, or simulate private and protected scopes. To do that, pass one of the constants , , to the attribute constructor.

Настройка FTP-подключения в PHPStorm

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

Прежде всего, нужно настроить FTP соединение с удалённым сервером. Для этого нужно перейти в меню настроек , где открыть вкладку , и нажать на кнопку добавления нового подключения:

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

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

И указав имя, получим такое окно с настройками, на котором остановимся подробнее:

где 1 — это опция, которая указывает на то, будет ли доступен этот сервер в других ваших PHPStorm-проектах. То есть, вы можете настроить это подключение один раз, и выставив эту галочку, работать в любом своём проекте, не настраивая его повторно в других проектах2 — тип подключения, который указывали шагом назад (который можем изменить в любой момент)3 — хост, к которому подключаемся4 — порт сервера (для SFTP обычно 22, но на сервере можно настроить какой угодно)5 — имя пользователя6 — пароль (и галочка сохранить пароль, чтобы не вводить его повторно)

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

В результате чего, должны получить сообщение об успешной проверке

Теперь осталось только настроить пути к проекту, папку выгрузки на сервер. Здесь нужно указать, в какой директории на сервере находятся файлы вашего проекта. К примеру, на VDS, файлы, обычно расположены по пути /var/www/html, если это хостинг, то , , или что-то типа того. Потому укажем путь, нажав на кнопку:

Теперь, последний шаг для удачного деплоя — укажем путь, куда будут загружаться файлы. Для этого нужно перейти на вкладку Mappings и выбрать путь (обычно, при указанном пути к проекту на предыдущей вкладке, Deployment path задаётся как ).

Если вы хотите, чтобы на удалённый сервер заливался проект, без определённых папок/файлов, то можете указать исключения на вкладке Excluded Paths, какие папки/файлы будут игнорироваться при деплое.

Готово! Нажимаем OK, и сервер добавлен.

Подключаемся к настроенному серверу

Подключение мы настроили. Но пока непонятно, как к нему подключиться. Для того, чтобы появилась удобная панель работы с FTP-серверами, откроем в меню , в результате чего, появится новая панель Remote Host, которую можете открыть кликнув по ней

И всё, теперь мы полноценно настроили подключение по FTP, и можем из PHPStorm загружать, или редактировать файлов на удалённом сервере. Удобство в том, что можно перенести файлы на сервер либо выделив все нужные локальные файлы, скопировав , перевести фокус на удалённый сервер, и .
Или же, выделив нужные файлы, нажмите правую кнопку мыши,

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

Прочее

Конечно же, это не все. Причем далеко не все. Я описал тут только те функции, которые наиболее часто востребованы, и немного коснулся менее используемых вещей. В phpstorm продуманы очень многие мелочи, которые в повседневной жизни упрощают работу с репозиторием многократно. Конечно же тут есть и cherry pick, и revert, и разные стратегии слияния веток, и много чего еще. Статья и без них уже получилась огромной, а если вы разберетесь с материалом этой статьи, то использовать все остальные фишки шторма не составит никакого труда.

Да, конечно, не все операции phpstorm позволит сделать с помощью GUI. Но подавляющее большинство операций — доступно. Да — это медленнее, чем через cli. Да — может быть это не «труъ». Но факт остается фактом — работать с гитом через GUI в шторме удобно и приятно, и что самое главное — продуктивно! Пользуйтесь дарами человечества и изучайте инструменты, с которыми работаете. Всем благ.

Вопросы и ответы

Дополнительные сведения относительно понижения и удаления AD.

1. Как удалить дочерний домен?

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

2. Как понизить режим работы домена?

Данный режим не понизить — это односторонняя операция. Максимум, что можно сделать, это восстановить службу AD из резервной копии, когда режим был нужного уровня.

3. Что делать, если умер основной контроллер домена?

Рассмотрим несколько вариантов:

  • Если есть резервная копия, восстанавливаемся из нее.
  • Если в среде несколько контроллеров домена, захватываем FSMO-роли (подробнее в инструкции Управление FSMO ролями Active Directory с помощью Powershell) и вручную удаляем уже несуществующий контроллер. После можно поднять новый контроллер, сделав его резервным.
  • Хуже, когда нет ни копий, ни второго контроллера. В таком случае, поднимаем новый контроллер, создаем новый лес, домен и переводим все компьютеры в него.

4. Что делать, если контроллер домена возвращает ошибку при понижении?

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

dcpromo /forceremoval

Как удалить быстро обновление?

Данным способом, можно удалить только те обновления, которые Microsoft не отмечает как «Важные»

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

Способ 1.

На мой взгляд, самый простой и быстрый способ, это открыть командную строку от имени Администратора и выполнить команду (скопируйте команду ниже и вставьте ее в командную строку):

и нажать Enter.

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

Например: wusa /uninstall /kb:5000802

Вместо 5000802, вам необходимо указать номер своего обновления.

Чтобы обновление не устанавливалось повторно, выберите отсрочку обновлений на 7 дней. Для
этого, откройте Пуск -> Параметры -> Обновление и безопасность
-> Центр обновления Windows и выберите пункт «Приостановить
обновления на 7 дн.»:

Таким образом можно приостановить установку обновлений максимум до 35 дней.

По теме: «Как заблокировать установку конкретного обновления в ОС Windows 10, не отключая поиск и установку обновлений полностью?»

Способ 2.

Можно воспользоваться утилитой WuMgr (Update Manager for Windows) для удаления обновлений. Инструмент имеет открытый исходный код. 

Вы можете ознакомится с преимуществами WuMgr в заметке: «Миф или реальность: «Как в ОС Windows 10, взять под свой полный контроль установку обновлений?»»

Скачайте инструмент с Github. 

Распакуйте архив в любую папку и запустите утилиту от имени Администратора (исполняемый файл: wumgr.exe). В открывшемся окне, выберите «Установленные обновления» и нажмите на Поиск:

Ждем результат:

После поиска, снова нажимаем на «Установленные обновления» и выбираем то обновление, которое хотим удалить. После, нажимаем Удалить:


Дождитесь окончания удаления и перезагрузите устройство.

Повторюсь, что так, можно удалить только те обновления, которые не отмечены в Microsoft как Важные

Добавлено 15.03.2021

Можно попробовать удалить обновление при помощи DISM. Но, процесс не гарантирован. Судя по всему, в ОС Windows 10 версии 2004 и выше, что то изменилось в обновлениях*. Более оптимальный вариант, использовать MSDaRT. Достаточно загрузится с диска MSDaRT (разрядность должна совпадать), выбрать Диагностика -> Microsoft Diagnostics and Recovery Toolset. В списке утилит нужно выбрать Hotfix Uninstal (Удаление исправлений).

В любом случае, пробуйте сначала откатить обновление штатными средствами (инструкции выше). Можно проверить контрольные точки восстановления и откатиться на них (до момента установки проблемного обновления).

*Перепроверю точно и добавлю информацию позже. 

Проверил. При помощи DISM, не всегда удается удалить обновление. В моем случае, мне не удалось удалить обновление КВ5000802 на ОС Windows 10 версии 20H2 при помощи DISM: «Удалить обновление при помощи DISM.»

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

Выбираем Удалить последнее обновление:

Выбираем свою учетку:

Указываем пароль от учетки (если есть, если нету пароля, оставляем поле пустым):

Подтверждаем удаление:

Ждем результат:

И получаем отказ:

Повторюсь, что только в субботу (13.03.2021) успешно удалял обновление КВ5000802 с ОС Windows 10 версии 20H2 на ряде компьютеров, о чем писал выше. Поэтому, пробуйте. Исходя из информации на форумах, это происходит у ряда пользователей. Одни могут удалить обновление КВ5000802, другие не могут.

Добавлено 02.04.2021

Окна

F12
Переключить полноэкранный режим (Toggle Full Screen Mode). Переопределил Jump to Last Tool Window.
Ctrl+Shift+P
Быстрый поиск действий (Find Action). Забрал эту комбинацию у действия Expression Type (Show type of the selected expression). Кто знает зачем это действие?
Ctrl+O
Открыть файл или проект. Забрал комбинацию у Override Methods.
Примечание

Обнаружил интересный workaround, который позволяет относительно быстро выполнить последний экшен:

  1. Ищем действие по Ctrl+Shift+A, например Toggle Bookmark
  2. Применяем его (ставим закладку)
  3. Жмем Ctrl+Shift+A и Shift+Shift.

Будет применяться последнее вызванное действие.

#keyboard, #hotkeys, #phpstorm

Просмотр изменений, git diff

В phpstorm ну очень много функциональности по части интеграции с гитом. Наверно самой удобной и нужной его частью является diff-viewer, который встроен в текстовый редактор phpstorm. Кстати, если у вас на примете уже есть какой-то другой diff-viewer, и вы им давно успешно пользуетесь, phpstorm дает возможность использовать его прямо в IDE (правда эта тема выходит за рамки статьи).

Сам по себе diff-viewer не является частью интеграции git в phpstorm. Это вполне обособленный инструмент, который можно использовать и в других сценариях. Например, можно сравнить содержимое двух файлов между собой (выделяем в дереве оба файла и жмем Ctrl+D или Command + D).

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

Если вам нужно просмотреть историю изменения какого-то файла и сравнить его с предыдущей версией этого же файла, то можно сделать следующее: достаточно вызвать контекстное меню конкретного файла (в дереве файлов или в редакторе) и выбрать опцию Git | Show History. В основной панели инструментов Version Control появится новая вкладка — History, в которой будут отражены все зафиксированные коммиты, в которых присутствовал этот файл. И вот тут как раз можно просмотреть разницу между разными версиями этого же файла с помощью соответствующей кнопки на панели (или шортката Ctrl + D или Command + D)

Нажав на эту кнопку вы увидите те правки, которые были сделаны в рамках этого коммита.

При просмотре diff’а можно настроить отображение окошка так, как душе угодно — можно просматривать в одной колонке, можно в двух; можно выделить изменения, которые были сделаны в рамках одной строки; можно показать файл целиком или показать только изменения + 5 строк сверху и снизу (при этом остальные строки файла будут просто в свернутом состоянии и к ним можно будет получить доступ, просто нажав на «плюсик» разворачивания кодового блока)

Настройка отладки PHP 7 в OpenServer

Первым делом давайте включим расширение Xdebug в файле конфигурации PHP (php.ini). Для этого идём в меню OpenServer -> Дополнительно -> Конфигурация -> PHP.

Здесь нам нужно найти секцию . Как правило, она находится в конце этого файла.
Здесь нам нужно раскомментировать (или просто добавить) строки:

Онлайн курсы

  • Курс HTML для начинающих
  • Курс PHP для начинающих
  • Курс MySQL для начинающих
  • Курс ООП в PHP

Все курсы

Должно получиться так:

После чего нужно сохранить файл (CTRL + S) и перезапустить веб-сервер.

На этом настройка веб-сервера для отладки завершена.

Алгоритмические задачи

  • Привет, мир!
  • Развернуть строку
  • Чётные числа
  • Числа Фибоначчи

Все задачи

Настройка отладки в PHPStorm

Теперь нам нужно настроить отладку в PHPStorm. Первым делом идём в настройки:
File -> Settings

Здесь в левом меню выбираем:
PHP -> Debug

Прокручиваем правую часть до секции Xdebug, и задаём следующие настройки:

  • Debug port: 9000
  • Force break at first line when no path mapping specified: выключено
  • Force break at first line when a script is outside the project: выключено

Сохраняем изменения, нажав на “OK”.

Теперь в верхней правой части программы жмём на такую выпадающую менюшку:

И жмём “Edit Configuration”.

В появившемся окне в левом верхнем углу жмём на плюсик и выбираем “PHP Remote Debug”.

Задаём настройки:

Name: XDebug

И нажимаем справа от пункта “Servers” на три точки:

В появившемся окне снова жмём на плюсик, и у нас в списке появляется новый сервер. Давайте зададим для него следующие настройки:

  • Name: localhost
  • Host: localhost
  • Port: 80
  • Debugger: Xdebug

Сохраняем нажатием на “OK” и завершаем заполнять ранее открытую настройку. А именно:

Ide key (session id): PHPSTORM

И убеждаемся, что в “Servers” указан только что созданный нами “localhost”.

Сохраняем, нажав “OK”. На этом конфигурация PHPStorm для отладки PHP-приложений с помощью Xdebug завершена.

Работа с удаленными репозиториями, git fetch, pull, push & clone

Сделать fetch можно с помощью меню VCS | Git | Fetch. Возможно где-то в недрах конфигурации есть опция, которая бы автоматически выполняла эту команду, но мне удалось найти эту функцию только в стороннем плагине — GitToolbox,

Сделать pull можно с помощью меню VCS | Git | Pull… Откроется диалоговое окно, которое предложит выбрать репозиторий и ветку/ветки для слияния. Там же есть ряд наиболее часто используемых опций при слиянии

Если вдруг в процессе слияния обнаружатся конфликты, то будет предложено их слить с помощью diff-viewer’а, как и при обычном merge.

Для выполнения push нужно выбрать меню VCS | Git | Push … или воспользоваться хоткеем Command + Shift + K или Ctrl + Shift + K. Это тоже диалоговое окно, в котором нужно выбрать репозитории и ветки, в которые выполнить отправку новых коммитов

Просмотр истории репозитория, git log

В любом инструменте для работы с репозиториями через gui обязательно должно быть дерево коммитов. PhpStorm — не исключение. Найти его можно во вкладке Log панели Version Control. На первый взгляд — ничего необычного. Однако чем больше с ним работаешь, тем больше понимаешь, насколько это серьезный инструмент. Да, я согласен, тут может быть есть не все то, что нужно иногда (редко), но тем не менее, на мой взгляд, этот лог гораздо более функционален, чем лог в других gui’яx (слово-то какое!).

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

Само по себе дерево является интерактивным. Можно свернуть историю, если она линейна, нажав на ветвь истории. Каждый коммит в дереве кликабелен и имеет контекстное меню, через которое можно выполнить все базовые операциями над коммитами в истории. Например, если вы хотите отменить сделанный коммит, через контекстное меню надо нажать на Reset Current branch to here …, после чего будет вызван диалог, предлагающий выбрать тип reset’а — hard, soft или mixed с пояснением каждого из вариантов.

А еще можно назначать теги, переходить к коммиту на github, делать cherry-pick, создавать новые ветки из коммита, и даже менять сообщение коммита.  В общем много всего.

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

В дополнение ко всему вышесказанному можно добавить приятную мелочь — интеграцию лога с таск-трекером. Для того, чтобы её настроить, нужно пойти в настройки по адресу Version Control > Issue Navigation, где добавить свои настройки для своего таск-трекера. В нашем случае оно выглядит вот так:

После сохранения этих настроек в логе коммитов гита (а на самом деле не только там, а много где) все подходящие под регулярку строки будут преобразованы в ссылки.

Final notes

PhpStorm won’t look for attributes deeper than one level. So we expect users to propagate attributes with a quick-fix.

Currently, these attributes are distributed with github.com/JetBrains/phpstorm-stubs. It means they are available in the IDE out-of-the-box. But we may reconsider how the distribution is done in the future.

The full list of changes in this EAP build is available in the release notes.

  • Important! PhpStorm EAP builds are not fully tested and may be unstable.
  • You can install an EAP build side by side with a stable PhpStorm version to try out the latest features.
  • EAP builds are free to use but expire 30 days after the build date.

Please report any problems you find to our issue tracker, or mention them in the comments to this post.

Your JetBrains PhpStorm teamThe Drive to Develop

ArrayShape
attributes
Deprecated
EAP
ExpectedValues
Immutable
NoReturn
PHP 8
Pure

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

Теперь можно использовать оператор распаковки в массивах:

Это работает только с массивами с числовыми ключами, с ассоциативными массивами распаковка работать не будет, ошибка будет выдана при обнаружении строкового ключа. Оператор спреда должен иметь лучшую производительность, чем array_merge. Это объясняется не только тем, что оператор распаковки является языковой структурой, в то время как array_merge является функцией, но и оптимизация времени компиляции может быть выполнена для констант массива. Плюс array_merge поддерживает операции только над массивами, а оператор спреда поддерживает реализацию объектов Traversable.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: