在我使用的所有Java IDE中,重构/重命名都是轻而易举的,因为IntelliJ会扫描项目文件并为我重命名。
我目前正在使用一个项目,其中有数百个类的引用遍布数百个文件。我想重构它,以便将Compound
类重命名为CompoundTag
。
因此,IDE(PhpStorm)应该将其更改为新的new Compound()
而不是CompoundTag()
。
所以,首先我右键单击该文件,转到Refactor -> Rename
:
接下来,我重命名了它,并确保检查这些选项:
最后,点击重构后......没有任何反应。文件名被更改,但项目中没有其他内容被重构。 PhpStorm甚至没有更改类名。
如何解决此问题以使PhpStorm正确重构我的文件?
答案 0 :(得分:2)
您已在文件上调用Refactor | Rename
。
你所做的是你重命名了一个文件......以及可能所有对文件的引用。但是在PHP中,世界类名称不一定必须与文件名相同..你可能会发现很多旧项目(特别是那些历史悠久的项目),你甚至可以在一个文件中看到多个类。 WordPress是一个流行的例子。当然,这些日子并不常见(感谢PSR),但仍然......
适用于Java(在IntelliJ中),因为:
对于PHP,此路径(重命名文件=重命名类)尚未实现。
您需要为PHP做什么...是在实际CLASS上调用Refactor | Rename
而不是文件。
重构操作在基于IDEA的IDE中依赖于上下文..因此,相同的操作将执行不同的操作,具体取决于您是在文件上调用它(例如在“项目视图”面板中)还是在插入符号下的某个元素上(在编辑器中)
这样的类重构可以做的不仅仅是这个类的重命名:
一些链接:
P.S。类似于仅移动文件和更改命名空间的故事 - 在类/命名空间而不是文件上调用Refactor | Move
。