情况
我有一个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。但是,在我想要的方向上可以做的最好的事情是:

我想不用说,这是我实际需要的非常糟糕的 super 简化版本。结论:失败。
4.企业架构师+ PHP_UML
但是,PHP_UML也可以生成XMI。哇。非常好。我可以存储我的关系,并以不同的方式查看它们,并与其他人交流。
因此,我将其导入到Enterprise Architect中。结果:与以前仅使用Enterprise Architect一样,仅没有类关系图。只是上课。据我所知,我现在可以手动创建关系。史诗般的失败。
5. ArgoUML + PHP_UML
在寻找解决方案的某个地方,我偶然发现某人的评论说他们使用ArgoUML。下载并安装。导入XMI时有些麻烦(必须将版本显式更改为1)。失败(请参阅尝试3)。
结论
这项看似微不足道的任务,但是却如此艰巨。我必须通过this whole list来尝试每个应用程序吗?

最佳答案

一种方法是采用我的尝试2或4中说明的方法,
然后按照Enterprise Architect为here给出的说明进行操作。

要使用PHP_UML生成XMI文件,请执行以下操作:

  • (如果尚未单独安装PHP),请按照these instructions安装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
  • 使用pear install PHP_UML安装PHP_UML软件包。
  • 执行phpuml -f xmi -o name_of_output_dir。如果计划以后将生成的XMI与某些较旧的程序一起使用,则可能需要通过添加-x 1来指定XMI版本1。
  • 对我来说,这无法立即生效,表示我缺少../../data/xmlschema.rng。不知道为什么会这样,但是如果遇到类似的错误,则可以从here下载它,并将其放在PEAR目录下的data文件夹中。

  • 此XMI以后可以与Enterprise ArchitectArgoUMLother XMI tools一起使用。

    09-29 23:16