Рефакторинг: упростите свою работу

В этом выпуске мы покажем, как легко и безопасно выполнять рефакторинг, например переименовывать пространства имен, всего за пару кликов. Вы узнаете, как вызвать меню Refactor This, просмотреть предлагаемые изменения и применить их. Так вы сможете упростить задачи, которые обычно требуют много времени и часто приводят к ошибкам.

О чем это видео

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

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

  • Переименовать папку с пространством имен.
  • Изменить пространство имен в каждом классе внутри этой папки.
  • Исправить все ссылки на эти классы во всем проекте.

Делать это вручную — не вариант, правда?

Но с PhpStorm все проще: выделяем нужную папку, нажимаем Control+T или Shift+Shift и ищем Refactor This.

Меню Refactor This можно вызвать для чего угодно: класса, переменной, значения или выделенного фрагмента кода — если элемент можно рефакторить, меню будет доступно.

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

Для папок выбор действий не такой уж большой, но нам и нужно просто переименовать. Нажимаем Rename и вводим новое имя. Этот рефакторинг также находит ссылки в строках и тексте, но пока остановимся на PHP-коде. Вы можете задать область применения рефакторинга, но лучше оставить настройку на весь проект.

Можно заранее просмотреть, что PhpStorm собирается изменить, а затем нажать Refactor, чтобы применить изменения.

И все готово! Если что-то пошло не так, рефакторинг всегда можно отменить, нажав Control или Command+Z.

Рефакторинг сильно упрощает работу. Мы рассмотрели простое переименование, но можно делать гораздо больше: извлекать части кода в отдельные методы, перемещать функции, делать методы статичными, преобразовывать значения в константы и многое другое.