Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I tell PHPStorm to refactor namespaces and class names?

Tags:

phpstorm

I've noticed when I move a file in PHPStorm, it doesn't adjust the namespace at all. My project uses PSR-0, so directory structure mirrors the namespacing. Is it possible to have PHPStorm adjust the namespace when a file is moved?

Also, when renaming a file the class name is not changed and I then have to go in and rename the class. Is it possible to rename a file and the class in a single step?

I'm using 7.1.3

like image 457
Webnet Avatar asked Mar 20 '14 13:03

Webnet


3 Answers

I encountered the same issue. The reason was that I was trying to move the file (from project view), instead of moving the class (right click on the name in the source code).

like image 54
Thibault Witzig Avatar answered Nov 07 '22 16:11

Thibault Witzig


If you use the F6 refactoring, it will allow you to move the class and change the namespace at the same time: PHPStorm docs

However, you do need to have the directory namespace mappings setup:

like image 34
CommandZ Avatar answered Nov 07 '22 16:11

CommandZ


Because my application is a Laravel app the root directory was not the source of the namespacing. PHPStorm has a new option as of 8.0 that allows you to specify a directory as the namespace root: http://youtrack.jetbrains.com/issue/WI-22585

like image 33
Webnet Avatar answered Nov 07 '22 16:11

Webnet