PhpStorm 2024.1 Help

Code refactoring

Refactoring is a process of improving your source code without creating a new functionality. Refactoring helps you keep your code solid , dry, and easy to maintain.

Invoke refactoring

  1. Select an item to refactor. You can select a file/folder in the Project tool window or expression/symbol in the editor.

  2. Press Ctrl+Alt+Shift+T to open a list of refactorings that can be selected.

    refactor this popup

    Alternatively, you can use a keyboard shortcut for a specific refactoring.

    You can also make a multi-caret selection for an extended range of refactoring operations, including Encapsulate Fields, Move Static Members, Extract Delegate, Extract Interface, and Extract Superclass. To utilize this feature, place the caret in each member you want to apply the refactoring to, and the IDE will automatically preselect and check these members in the refactoring dialog.

If you need to undo your refactoring, press Ctrl+Z.

Preview refactoring changes

For some refactorings, PhpStorm lets you preview the changes before applying them. The dialog window for such refactoring actions has the Preview button on it.

  1. Click Preview in the dialog to see potential changes (the list of usages where the refactoring will be performed).

    Refactoring dialog
  2. In the Find tool window that opens, check the changes that are going to be made. You can exclude Delete or remove Ctrl+X changes that you consider unnecessary.

    Refactoring preview
  3. Click Do Refactor to proceed with the changes.

Resolve conflicts

When PhpStorm encounters problems with your refactoring, it opens a dialog with the list of conflicts and their brief descriptions.

Refactoring conflicts dialog
  • Click Refactor Anyway to ignore the problem and proceed.

  • Click Open in Find Window to open the conflict entries in the Find tool window and deal with them further.

  • In the Find tool window, you can apply the refactor by selecting Do Refactor or click Cancel and return to the editor.

    Refactoring conflicts tool window

    Configure refactoring settings

    1. In the Settings dialog (Ctrl+Alt+S) , select Editor | Code Editing.

    2. On the Code Editing page, in the Refactorings section, adjust the refactoring options and click OK.

    Safe Delete


    Makes sure that you do not delete files that are referenced in your source code.

    Safe delete



    Copies/Moves an element.

    Copy and Move Refactorings

    Extract Method


    These refactoring actions help you reduce the code duplication.

    Extract method

    Extract Constant


    Declares a new constant and initializes it with the selected expression.

    Extract constant

    Extract Field


    Declares a new class property and initializes it with the selected expression.

    Extract field

    Extract Parameter


    Adds a new parameter to a method declaration and updates the method calls accordingly.

    Extract parameter

    Introduce Variable


    Declares a new variable and initializes it with the selected expression.

    Extract/Introduce variable



    Renames an element.

    Rename refactorings



    Inlines an element. Acts as the opposite of extracting.


    Change signature


    Changes the call signature of a method.

    Change signature

    Last modified: 26 April 2024