PHPStorm重构快捷方式在use语句中给出别名

seb*_*n_t 10 phpstorm

当我尝试use一个导致名称冲突的类,即.我有两个具有相同名称但不同名称空间的类,我尝试使用它们两个PHPStorm显示一个提示重命名第二个类=给它一个别名as.

<?php
use MyNamespace\SomeClass;
use MyOtherNamespace\SomeClass as SomeOtherClass;
Run Code Online (Sandbox Code Playgroud)

我希望能够在指针位于类上时随时调用此提示符,最好是从键盘快捷键.这可能吗?

med*_*dev 5

您可以使用 PHPStorm 重构功能(光标位于SomeOtherClass上,Shift+F6),它允许重命名别名及其用法。

单击此处查看屏幕截图

如果您已经在脚本中使用了SomeClass而没有使用别名,则首先应该设置一个具有相同名称的别名:

use MyNamespace\SomeClass as SomeClass;
Run Code Online (Sandbox Code Playgroud)

然后按照上面的描述重构这个别名。

另一种解决方案:

如果您导入有冲突的名称,例如 Foo\MyClass 并且您已经使用了 use Bar\MyClass; 在您的文档中,您应该会看到以下提示

+--------------------------------------------+
| Import class                               |
+--------------------------------------------+
| Alias name:                                |
| [________________________________________] |
|                                            |
| [X] Always create alias while class import |
|                                            |
|                          [ OK ] [ Cancel ] |
+--------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

诀窍是选中“始终创建别名”复选框,以便在导入时始终看到提示。

忘记提及您还应该取消选中设置

设置 > 编辑器 > 常规 > 自动导入 > [ ] 在文件范围内启用自动导入

设置 > 编辑器 > 常规 > 自动导入 > [ ] 在命名空间范围内启用自动导入

https://laracasts.com/discuss/channels/general-discussion/phpstorm-importing-namespaces-with-aliases/replies/99388


Min*_*vME 5

使用 PhpStorm 2018.3,您可以使用“用别名替换”功能:https ://blog.jetbrains.com/phpstorm/2018/12/new-refactorings-in-phpstorm-2018-3/

在此处输入图片说明