Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP UML生成器_Php_Uml_Class Diagram - Fatal编程技术网

PHP UML生成器

PHP UML生成器,php,uml,class-diagram,Php,Uml,Class Diagram,如何基于PHP中现有的类生成UML图?您试过了吗?上次我试了一下,它并不完美,但已经足够好了。还有一个。你需要做一些手工工作,但是它会生成所有的类,所以你所要做的就是把它们拖到一个类图中 否则,使用反射和graphviz生成图表相当简单。我有一个片段,您可以将其用作起点。还有PHP UML工具,可从中获得 PHP_UML: 可以在1.4版或2.1版(逻辑、组件和部署视图)中生成UML/XMI文件 可以生成HTML格式的API文档 可以从给定的XMI文件生成PHP代码(代码骨架) 可以将UML/

如何基于PHP中现有的类生成UML图?

您试过了吗?上次我试了一下,它并不完美,但已经足够好了。

还有一个。你需要做一些手工工作,但是它会生成所有的类,所以你所要做的就是把它们拖到一个类图中


否则,使用反射和graphviz生成图表相当简单。我有一个片段,您可以将其用作起点。

还有PHP UML工具,可从中获得

PHP_UML:

  • 可以在1.4版或2.1版(逻辑、组件和部署视图)中生成UML/XMI文件
  • 可以生成HTML格式的API文档
  • 可以从给定的XMI文件生成PHP代码(代码骨架)
  • 可以将UML/XMI内容从版本1.4转换为版本2.1
通过以下方式在命令行上安装它:

$pear安装pear/php\u uml

(以前是
$pear install pear/php_uml-alpha
,但现在这个包已经稳定了。)

生成您的xmi:

$phpuml-o project.xmi

我发现最好的(Windows)PHP和UML软件是。除了的pletora外,它还支持用于PHP的:

  • 将面向对象PHP反向工程到UML类图中
  • 从UML类图生成PHP类定义
  • 将UML类中所做的更改同步到相应的PHP类定义中
  • 将PHP类定义中的更改同步到相应的UML类中
  • 创建UML序列图以显示PHP类使用什么以及如何使用它们
  • 以标准RTF和HTML格式生成PHP代码的详细文档
  • 对模型执行代码工程以生成基本PHP页面
不是免费的(199美元),但绝对物有所值。

我强烈推荐:

  • 非常快(有史以来创建的最快的UML工具,请检查)
  • 有摇滚实词>强> PHP导入导出
  • 是多平台(Linux、Windows和其他操作系统)
  • 功能齐全,令人印象深刻的集中开发(看看,很难相信如此快速的进步是可能的)
  • 支持插件,具有模块化架构(这允许,看起来BOUML社区正在形成)

您可以使用UML的可视化范例。这可能不是报酬最高(699美元)的产品,如果有人愿意尝试,可以作为一种选择。它可以从PHP创建类图,反之亦然,不仅PHP有一组语言可以选择,如C++、C++、露比、java、VB.NET、Python、Objic C、Perl等。还有一个可以检查的例子。

< P>这里我是如何做的(直接从代码到PDF绘图而没有任何手工绘图):< /P>
  • 用于“反向工程PHP代码”[sic]以提取类模型(BOUML可从Ubuntu的“universe”存储库获得)。我郑重推荐BOUML用于这一步,因为与我尝试过的许多其他程序相比,它真的很快。此外,BOUML似乎能够正确地提取模型(对于BOUML甚至试图提取的部分)
  • 使用BOUML将模型导出为XMI 1.4文件
  • 用于导入所述XMI文件(此步骤可以使用webstart版本)
  • 从ArgoUML导出XMI(我不知道输出是哪个XMI版本/变体,但结果与BOUML的输出不同。ArgoUML graphviz无法直接从BOUML处理XMI文件)
  • 用于将ArgoUML导出的XMI文件转换为点格式(由于使用XSLT2,您可能需要使用而不是xsltproc使其工作)
  • 使用或来呈现类图
  • 下面是一个使用fdp输出PDF图表的合适命令行示例(假设argouml graphviz XLST处理生成的点文件保存为xmi model.dot):

    作为替代方案,您可以尝试或代替BOUML来完成“逆向工程”部分。我还没试过

    (我之所以使用“逆向工程”这个短语,是因为UML人员似乎在使用这些词,他们的意思是从源代码中提取类和方法信息。我个人将这些词解释为从可执行二进制文件或捕获的原始数据中提取信息。)


    如果您更喜欢手工绘制类图(而不是使用计算机来完成所有的绘制),那么可以使用BOUML或ArgoUML进行绘制。在BuffML中使用“反向工程”数据将有帮助。

    < P>如果您希望从现有PHP类中轻松生成UML,您可能需要考虑php风暴3 IDE。它很好地将现有代码复制到UML中

    请查看。

    phUML是用PHP编写的全自动UML类图表生成器,根据BSD许可证获得许可。它能够解析任何PHP5面向对象的源代码,并基于UML规范创建oo结构的适当图像表示


    老实说,首先,您不应该从代码生成UML模型,而应该从UML模型生成代码;)

    即使您处于一种罕见的情况下,当您需要进行这种逆向工程时,通常建议您手工进行,或者至少整理图表,因为自动生成的UML在大多数情况下具有非常差的视觉(=信息)价值

    如果您只需要生成图表,最好问问自己为什么要这样做?目标受众是谁?目标是什么?自动生成的图表提供了什么,哪些代码没有

    基本上我只接受这个问题的一个答案。它太大了,让人无法理解

    这也是从UML开始的原因,而不是从编码开始;)这叫做分析,在de上
    fdp -Tpdf -Gmaxiter=1000 -Gmindist=0.5 -Gpackmode=node \
      -Eweight=0.05 -Elen=1.0 -Eminlen=1.0 -Gsplines=true \
      -Goverlap=false xmi-model.dot -oxmi-model.pdf
    
    ./phuml -r /var/www/my_project -graphviz -createAssociations false -neato out.png