代码之家  ›  专栏  ›  技术社区  ›  XedinUnknown

从XMI生成类图

  •  10
  • XedinUnknown  · 技术社区  · 12 年前

    情况

    我有一个PHP项目,在下面的很多文件夹中有很多类和很多关系 Zend Naming Convention

    我使用NetBeans IDE 7.1。 我在Windows7下工作。

    球门

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

    尝试

    1.在NetBeans中

    NetBeans 是一个很棒的IDE,有很多功能。事实上,它可以识别类依赖关系,最好假设它有某种方式来以图形方式查看这种关系,无论是本机还是通过插件。这样一个 plugin 存在,但适用于5.5版。我有7.1,但它不兼容。失败

    2.企业架构师

    一个简单的谷歌搜索就会出现 Enterprise Architect 作为解决此类问题的全能、全面的工具。所以,我下载并安装。我不打算详述我是如何不理解如何做任何事情的,教程是如何吹嘘软件的功能的,但很少说 怎样

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

    注释 :我在这个线程之前创建了一个并行线程 here

    3.PHP_UML

    建立 this PEAR tool 。看起来不错。因此,我从各种来源阅读了关于如何安装它的文档,并运行了它 html格式 输出格式。太棒了很多文档都有索引,bla-bla-bla。然而,它能朝着我想要的方向做的最好的事情是: Class Diagram? 不用说,我想,这是我实际需要的一个非常糟糕、超级简化的版本。结论:失败。

    4.企业架构师+PHP_UML

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

    因此,我将其导入到Enterprise Architect中。结果:和以前一样,只有EnterpriseArchitect没有类图。只是上课。据我所知,我现在可以手动创建关系了。史诗般的失败。

    5.ArgoUML+PHP_UML

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

    结论

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

    2 回复  |  直到 4 年前
        1
  •  5
  •   Community CDub    7 年前

    做到这一点的方法之一是采用我的尝试2或4中所示的方法, 然后按照给出的说明 here 企业架构师。

    生成 XMI 使用PHP_UML的文件:

    • 跟随 these instructions 如果尚未安装PEAR,如果您单独安装了PHP,则安装PEAR。
    • 如果您在Windows下使用XAMPP(我的情况),请按照 these instructions 将PEAR添加到 PATH env variable 从而使PEAR可通过 CMD ,并学习如何在*nix和Windows系统中安装软件包。 提示: 对于Windows,PATH分隔符为“;”(分号)。
    • 在某些设置中,例如使用 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
    • 对我来说,这并没有立即奏效,说我失踪了/data/xmlschema.rng。不确定为什么会发生这种情况,但如果您遇到类似的错误,可以从 here 并将其放入 data 文件夹就在您的PEAR目录下。

    此XMI稍后可以与 Enterprise Architect , ArgoUML other XMI tools

        2
  •  1
  •   snoob dogg    7 年前

    ( 编辑 :对于想要从PHP项目生成UML类图的人来说,这个答案是一个替代方案,它没有解释如何读取XMI文件)

    球门

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

    如果您的目标是从PHP项目生成类图,我发现了一个比使用PHP_UML更好的解决方案。你可能想要的是 BoUML公司 ,使用该软件,您可以选择一个PHP项目文件夹并对其进行反向工程。然后创建一个类图。当你拖动&把类放在上面,关系在那里不像AlgoUML(如果我没有错的话)。XMI文件在这种情况下不再有用。