有谁知道是否可以配置 VSCode 以在将文件移动到其他位置后发生以下情况?
例如,假设我在
src/app
有以下课程:
src/app/Hello.php
<?php
namespace App;
class Hello {
...
}
src/app/Goodbye.php
<?php
namespace App;
use App\Hello;
class Goodbye {
...
}
我想将我的
src/app/Hello.php
文件移至 src/app/services/Hello.php
。应该会发生以下情况:
namespace App
更改为 namespace App\Services
src/app/Goodbye.php
中的导入从use App\Hello
更改为use App\Services\Hello
那么我们将有:
src/app/services/Hello.php
<?php
namespace App\Services;
class Hello {
...
}
src/app/Goodbye.php
<?php
namespace App;
use App\Services\Hello;
class Goodbye {
...
}
这可以通过 PHP Intelephense 或 PHP 命名空间解析器扩展或任何其他方式来完成吗?
这可以通过 Intelepense 的付费版本来完成。在 VSCode 中,您必须对文件中的命名空间声明执行“重命名符号”(通过右键单击上下文菜单或按 F2),它会自动将文件移动到正确的文件夹并更改所有出现的位置。
例如,如果您有一个文件
Foo/Baz.php
:
<?php
namespace Foo;
class Baz {}
对 Foo 执行“重命名符号”并将其更改为
Foo\Bar
。
现在该文件将被移动到
Foo/Bar/Baz.php
并且命名空间声明将更改:
<?php
namespace Foo\Bar;
class Baz {}
其他文件中出现的所有
Baz
也将如此:
<?php
use Foo\Bar\Baz; # Instead of use Foo\Baz.
use Foo\Bar\Baz as Bap; # Instead of use Foo\Baz as Bap.
new Foo\Bar\Baz; # Instead of new Foo\Baz.
# And so on...