Select an item to refactor. You can select a file/folder in the Project tool window or expression/symbol in the editor.
Press Control+Alt+Shift+T to open a list of refactorings that can be selected.
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 a 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 Control+Z.
Preview refactoring changes
For some refactorings, PhpStorm lets you preview the changes before applying them.
To see potential changes (the list of usages where the refactoring will be performed), click Preview in the Refactoring Preview dialog.
Check the changes that are going to be made in the Find tool window. You can exclude Delete or remove Control+X changes that you consider unnecessary.
Click Do Refactor to proceed with the changes.
When PhpStorm encounters problems with your refactoring, it opens a dialog with the list of conflicts and their brief descriptions.
Click Continue to ignore the problem and proceed to open the preview in the Find tool window.
Click Show Conflicts in View to open the conflict entries in the Find tool window and deal with them further.
For example, you can try to exclude an entry from refactoring by pressing Delete or click Cancel and return to the editor.
Configure refactoring settings
In the Settings dialog (Control+Alt+S), select .
On the Code Editing page, in the Refactorings section, adjust the refactoring options and click OK.
The most popular refactorings supported in PhpStorm
Makes sure that you do not delete files that are referenced in your source code.
F5 / F6
Copies/Moves an element.
These refactoring actions help you reduce the code duplication.
Declares a new constant and initializes it with the selected expression.
Declares a new class property and initializes it with the selected expression.
Adds a new parameter to a method declaration and updates the method calls accordingly.
Declares a new variable and initializes it with the selected expression.
Renames an element.
Inlines an element. Acts as the opposite of extracting.
Changes the call signature of a method.