Search for usages
When you write or edit code, you might come across a code element that you want to change or delete. Before you make the changes, it is a good practice to see where the code element is used and how it affects the application. With the Find Usages actions you can search for the references of your code element throughout the whole codebase.
You can manage the search process and search only in a single file, extend your search to the whole project, or create a certain search scope. Moreover, you can configure the color of the usages highlighting or disable the automatic highlighting of usages altogether.
In the editor, select a symbol you want to find, PhpStorm automatically highlights all found usages in the file. If the highlighting of usages is disabled, press CtrlShiftF7 to highlight all usages in the file.
In the PHP context, PhpStorm automatically highlights extended and implemented methods, import statements, exit points, the places where exceptions are thrown, and loop statements. Highlighting is invoked when you place the caret at an
extends
,implements
,use
,use trait
,return
,try
,catch
,@throws
,break
, orcontinue
keyword.Symbols' usages are highlighted with regard to their scope. For example, highlighting for
@throws
is not applied inside nested classes and functions.Go to Edit | Find Usages | Find Usages in File CtrlF7. PhpStorm selects the first usage occurrence in the file.
Use the F3 and ShiftF3 shortcuts to navigate between highlighted symbols.
tip
You can also use the and shortcuts for navigation between usages.
Select a symbol for which you want to find usages, right-click the symbol, and select Find Usages from its context menu or press AltF7.
Check the results in the Find tool window.
If you need, you can group (
) the results by files, packages, directories, and so on.
PhpStorm analyzes search results, detects the most common usage patterns, and categorizes all found usages into groups based on their structural similarity. These usage clusters appear in the Preview tab.
You can select any group node from the list and click Show similar usages to look through the results.
To disable this functionality, unselect the Enable similar usages clustering in Find Usages view in the advanced settings.
While in the Find tool window, you can also use the Preview area to check the places where the usages were found, to see a call hierarchy for methods, data flow for fields, and so on.
You can use the Find Usages action as an alternative to Call Hierarchy actions (CtrlAlt0H).
tip
On how to find usages of implemented and overridden PHP methods, check the Finding usages of implemented and overridden PHP methods tutorial.
You have several options to see the code source for the usages found.
Select a symbol for which you want to find usages, right-click the symbol, and select Find Usages from its context menu or press AltF7.
In the Find tool window, click the
Preview Source icon.
As an alternative, you can select Jump to Source if you invoke the context menu on a usage found or Show in Split. In this case, the file with the result usage is opened in the editor.
You can view usages of the selected symbol in a separate window that you can move to different parts of your screen and use for quick navigation.
In the editor, select a symbol for which you want to see the usages.
Go to Edit | Find Usages | Show Usages In Code CtrlAltF7.
The usages window shows the current scope and total count of usages. If you want to quickly switch to the default scope, press CtrlAltF7.
If the search results have too many entries, then PhpStorm shows the first hundred usages found and the more usages option on the bottom of the window which you can click to display another hundred usages, and so on until the search is finished.
Use filters on the top of the window to show or hide the certain search entries.
PhpStorm remembers your Find Usages results, so you don't need to run the action again.
In the main menu, go to Edit | Find | Recent Find Usages and then select the usage query.
Sometimes, you might want to find usages only in certain files or libraries of your project.
Press CtrlAltShiftF7 to open the Find Usages dialog.
In the Find Usages dialog, in the Scope field, select a scope for your search. For example, you can search for usages only in Open Files or only Project Test Files.
You can also set a custom scope by clicking
. For example, you can create a custom scope to exclude certain files from the search for usages, such as test files. When you are done setting a new scope, click Find.
If PhpStorm doesn't return any results, it will display a message suggesting that you opt for more options.
You can follow the link or press CtrlAltShiftF7 to open the Find Usages dialog again and set a new scope for your search.
When you place the caret at a symbol, the IDE highlights all usages of this symbol in the current file.
note
In the Power Save Mode (File | Power Save Mode), highlighting of usages is disabled.
If necessary, you can disable the automatic highlighting.
Press CtrlAlt0S to open settings and then select Editor | Code Editing.
Clear the Usages of element at caret checkbox in the Highlight on Caret Movement section.
When automatic highlighting is disabled, and you want to highlight usages of a symbol in the current file, select this symbol and press CtrlShiftF7. This will highlight all usages of the symbol in the current file.
In the Settings dialog (CtrlAlt0S) , go to Editor | Color Scheme | General.
From the options on the right, open the Code node and select Identifier under caret.
In the Background field, specify the color you need and save the changes.
When you search for usages of a method, PhpStorm prompts you to choose whether you want to search for the base method or method's implementations.
If you select the Remember, don't ask again checkbox, PhpStorm will no longer display the prompt, and the selected search option will be used as default. If necessary, you can restore the prompt.
In the Settings dialog (CtrlAlt0S) , go to Editor | General | Smart Keys.
In the PHP area, select the Show additional options when searching for method usages checkbox.
Thanks for your feedback!