Eclipse - 使用文件名约定重构 php-Classes



我是日食新手,正在使用版本 版本: Mars.1 发布 (4.5.1)

我正在使用"PHP 开发工具 3.6"插件的重构工具来重命名例如类。

我们的类文件名遵循简单的 PSR-0 约定,即下划线表示子目录。

所以例如类Class_Something位于类/东西.php

如果我将类Class_Something重命名为 Class_Something2如果文件会自动移动到 Class/Something2,那就太好了.php

有谁知道是否可以自动重构类的名称和引用,还可以重构文件名?

提前感谢您的帮助!

看起来像Eclipse插件的手工解决方案。

首先,从以下位置下载并安装 PHP 解析器: php-parser-github一个简单的例子将告诉你,你可以从给定的源代码中获取类名。

源代码示例

require 'vendor/autoload.php';
use PhpParserParserFactory;
$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();
}

从命令行运行它//输出

array(1) {
  [0]=>
  object(PhpParserNodeStmtClass_)#8 (6) {
    ["type"]=>
    int(0)
    ["extends"]=>
    NULL
    ["implements"]=>
    array(0) {
    }
    ["name"]=>
    string(14) "MyClass_SubDir"
    ["stmts"]=>
    array(1) {
      [0]=>
      object(PhpParserNodeStmtProperty)#7 (3) {
      ...
}

如您所见,我们可以获取当前源代码中定义的所有类

--object(PhpParserNodeStmtClass_
 |
 |___ name : MyClass_SubDir

这里的目标是

  • 从类名中提取目录名,为此,您可以使用"正则表达式"或"爆炸"
  • 将当前文件移动到所需目录,可以使用"重命名"功能

将您的 php 代码保存在某个地方...例如eclipse_plugin.php..

下一步是创建一个批处理文件,该文件将使用 Eclipse

插入

创建一个浴文件,它将从 Eclipse 接收 2 个参数

    **
  • $1**:容器位置 - Eclipse 中所选文件的绝对路径
  • **
  • $2** :资源位置 - Eclipse 中所选文件的绝对路径和名称(我们只需要 $2 :-) )

在批处理文件中放置

php eclipse_plugin.php $1 $2 

注意:php必须在PATH环境中变量PHP 会在$argv[0]中找到他的论点

,并$argv[1]

配置 Eclipse

  • 转到运行外部工具>外部工具配置>单击程序部分>按新启动配置
  • 在 Tab Main 中,指定自定义批处理文件的位置
  • 还要指定他的工作目录
  • 在参数部分中,将这些参数 ${container_loc} ${resource_loc}

完成!,现在当您在 Eclipse 中重命名您的类时,只需单击运行按钮:)

相关内容

  • 没有找到相关文章

最新更新