gpt4 book ai didi

php - Eclipse - 在重构 php 类时使用文件名约定

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:37:59 24 4
gpt4 key购买 nike

我是 eclipse 的新手,正在使用版本:Mars.1 Release (4.5.1)

我正在使用“PHP Development Tools 3.6”插件的重构工具重命名,例如类。

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

例如类 Class_Something位于类/Something.php

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

有人知道是否可以自动重构类的名称和引用以及文件名吗?

预先感谢您的帮助!

最佳答案

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

首先,从以下地址下载并安装 PHP 解析器:php-parser-github一个简单的示例将向您展示您可以从给定的源代码中获取类名

源代码示例

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();
}

从命令行运行//输出

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) {
...
}

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

--object(PhpParser\Node\Stmt\Class_
|
|___ name : MyClass_SubDir

这里的目标是

  • 从类名中提取目录名,为此你可以使用 `regex` 或 `explode`
  • 将当前文件移动到想要的目录,可以使用`rename`功能

将您的 php 代码保存在某处...例如 eclipse_plugin.php ..

下一步是创建一个将插入 Eclipse 的批处理文件

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

  • **$1** : container location - 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 中重命名您的类时,只需单击运行按钮 :)

HTH

关于php - Eclipse - 在重构 php 类时使用文件名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34785062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com