Ben*_*Ben 5 php eclipse refactoring psr-0
我是eclipse的新手,正在使用版本:Mars.1 Release(4.5.1)
我正在使用"PHP开发工具3.6"插件的重构工具来重命名例如类.
我们的类文件名遵循简单的PSR-0约定,下划线代表一个子目录.
例如,类Class_Something位于Class/Something.php中
如果我将Class_Something类重命名为Class_Something2,那么将文件自动移动到Class/Something2.php会很棒.
有人知道是否可以自动重构类的名称和引用,还有文件名?
在此先感谢您的帮助!
本
手工制作的解决方案,看起来像 Eclipse 插件
首先,从php-parser-github下载并安装 PHP Parser 一个简单的示例将向您展示您可以从给定的源代码中获取类名
源代码示例
require 'vendor/autoload.php';
use PhpParser\ParserFactory;
$parser = (new ParserFactory)->create(ParserFactory::PREFER_PHP7);
try {
$stmts = $parser->parse('<?php class MyClass_SubDir {private $member;}');
var_dump($stmts);
}
catch (Error $e) {
echo 'Parse Error: ', $e->getMessage();
}
Run Code Online (Sandbox Code Playgroud)
从命令行运行它//输出
array(1) {
[0]=>
object(PhpParser\Node\Stmt\Class_)#8 (6) {
["type"]=>
int(0)
["extends"]=>
NULL
["implements"]=>
array(0) {
}
["name"]=>
string(14) "MyClass_SubDir"
["stmts"]=>
array(1) {
[0]=>
object(PhpParser\Node\Stmt\Property)#7 (3) {
...
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我们可以获得当前源中定义的所有类
--object(PhpParser\Node\Stmt\Class_
|
|___ name : MyClass_SubDir
Run Code Online (Sandbox Code Playgroud)
这里的目标是
将您的 php 代码保存在某处...例如 eclipse_plugin.php ..
下一步是创建一个将插入 Eclipse 的批处理文件
创建一个 Bath 文件,它将从 Eclipse 接收 2 个参数
在批处理文件中放入
php eclipse_plugin.php $1 $2
Run Code Online (Sandbox Code Playgroud)
注意:php必须在环境变量中 PHP会在和PATH中找到他的参数$argv[0]$argv[1]
配置 Eclipse
完毕 !,现在当您在 Eclipse 中重命名类时,只需单击“运行”按钮即可:)
华泰