gpt4 book ai didi

php - 从 XMI 生成类图

转载 作者:可可西里 更新时间:2023-11-01 12:19:24 28 4
gpt4 key购买 nike

情况

我有一个 PHP 项目,其中有很多类,在 Zend Naming Convention 之后的很多文件夹中有很多关系。 .

我使用 NetBeans IDE 7.1。我在 Windows 7 下工作。

目标

我需要查看类关系的图形表示,可能具有不同的深度和不同的复杂程度。另外,如果图中的类是可点击的,那就太好了。我不一定需要生成文档。

尝试

1。在 NetBeans 中

NetBeans是一个很棒的 IDE,具有很多功能。事实上,它识别类依赖关系,明智的做法是假设它有某种方式来以图形方式查看这种关系, native 或通过插件。这样一个plugin存在,但适用于 5.5 版。我有 7.1,它不兼容。失败。

2。企业架构师

一个简单的谷歌搜索会出现 Enterprise Architect作为解决此类问题的全能、完全综合的工具。所以,我下载并安装。我不打算详细说明我如何无法理解如何做任何事情,以及教程如何吹嘘软件可以做什么,但很少说如何

因此,我导入了源代码。它生成了许多不同的类并解析了所有成员。此外,它还生成了类图。 “完美!”,我虽然,但唉。类图仅显示类之间的关系,类的文件位于同一源文件夹中,尽管这些关系明显地注册在类的属性中。搜索有关如何将所有这些图合并为一个图的文档没有成功。失败。

注意:我在此之前创建了一个并行线程here .

3。 PHP_UML

找到 this PEAR tool .看起来不错。因此,我通读了有关如何从各种来源为我的设置安装它的文档,并运行了它。首先,我使用了 html 输出格式。伟大的!许多带有索引的文档,bla bla bla。然而,它在我想要的方向上能做的最好的是: Class Diagram?不用说,我想,这是我实际需要的一个非常糟糕、 super 简化的版本。结论:失败。

4。企业架构师 + PHP_UML

不过,PHP_UML 也可以生成XMI。哇。非常好。我可以存储我的关系并以不同的方式查看它们并与其他人交流。

因此,我将其导入 Enterprise Architect。结果:与以前一样,只有 Enterprise Architect,只是没有类图。只是类(class)。据我所知,我现在可以手动创建关系。史诗般的失败。

5。 ArgoUML + PHP_UML

在我寻找解决方案的某个地方,我偶然发现了某人的评论,说他们使用 ArgoUML .下载并安装。 XMI 导入时遇到了一些麻烦(必须将版本明确更改为 1)。失败(见尝试 3)。

结论

这样一个看似微不足道的任务,却又如此困难。我必须通过this whole list吗? ,试用每个应用程序?

最佳答案

其中一种方法是采用我的尝试 2 或 4 中说明的方法,然后按照 here 给出的说明进行操作企业架构师。

生成 XMI使用 PHP_UML 的文件:

  • 关注these instructions如果您已经单独安装了 PHP,则安装 PEAR(如果尚未安装)。
  • 如果您在 Windows 下使用 XAMPP(我的情况),请遵循 these instructions将 PEAR 添加到 PATH env variable从而通过 CMD 提供 PEAR ,并学习如何在 *nix 和 Windows 系统中安装包。 提示 PATH 分隔符是“;” (分号)用于 Windows。
  • 在某些设置中,例如使用 XAMPP ,你may need to activate the XSL extension .在这种情况下,打开您的 php.ini文件(您可能需要管理员权限才能保存它),然后取消注释或将以下行添加到“动态扩展”部分的底部:extension=php_xsl.dll
  • 安装 PHP_UML使用 pear install PHP_UML 打包。
  • 执行 phpuml -f xmi -o name_of_output_dir。如果您计划稍后将生成的 XMI 与一些较旧的程序一起使用,您可能需要通过添加 -x 1 来指定 XMI 版本 1。
  • 对我来说,这并没有立即奏效,说我缺少 ../../data/xmlschema.rng。不知道为什么会这样,但是如果你遇到类似的错误,你可以从 here 下载它。并将其放入 PEAR 目录下的 data 文件夹中。

此 XMI 以后可以与 Enterprise Architect 一起使用, ArgoUMLother XMI tools .

关于php - 从 XMI 生成类图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590015/

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