osinet/grafizzi

PHP的GraphViz生成器。重新思考了PEAR Image_GraphViz。

0.0.3 2022-06-02 15:58 UTC

This package is auto-updated.

Last update: 2024-09-29 19:30:51 UTC


README

欢迎使用Grafizzi,AT&T GraphViz的PHP包装器。

Build codecov Scrutinizer Quality Score FOSSA Status

在您的PHP GraphViz项目中使用Grafizzi

在项目中安装它。

$ composer require osinet/grafizzi

使用Grafizzi生成图表

  1. 创建一个Pimple实例,将其传递给您的PSR/3日志实例(例如 Monolog)作为logger键,并可能传递其他参数,例如directed来指定您是否想构建一个有向图。
  2. 创建一个Graph实例,将其传递给容器。
  3. 使用addChild()方法将SubgraphNodeEdge实例添加到图中。每个这些在构造函数中都接受容器和一个Attribute实例数组,或者您可以在构造后使用setAttribute()添加它们。属性实例可以在多个元素上重复使用。
  4. 在图实例上调用build()方法以获取包含您的Graphviz dot文件的字符串,然后您可以将其输出到文件或管道到dotneato或您选择的Graphviz命令。
  5. 可选:使用一系列Filter实例来过滤结果,例如从您的PHP脚本中运行Graphviz(DotFilter),或者在过滤器管道和字符串之间“tee”(StringFilter)。

您可以从提供的example/目录中的示例中获取灵感。

  • example/hello_node.php构建一个显示大量日志的最小图
  • example/grafizzi.php构建Grafizzi的Filter类层次结构的图。

在Grafizzi本身上工作

为开发安装Grafizzi

获取Grafizzi源代码

开始的最简单方法是克隆Git存储库。

git clone https://github.com/fgm/grafizzi.git

下载依赖项

一旦您有了Grafizzi存储库的克隆,您需要使用Composer包依赖管理器安装其开发依赖项。

按照https://getcomposer.org.cn/download/上的说明下载Composer

然后运行

php composer.phar install

请注意,Grafizzi适用于PHP ≥ 8.2。

检查系统配置

现在确保您的本地系统已正确配置以支持Grafizzi。为此,请执行以下操作:

php example/hello-node.php

您应该看到一个详细的调试执行跟踪。在POSIX系统上,您可以通过将stderr重定向到/dev/null来仅获取结果Graphviz源。

php example/hello-node.php 2> /dev/null

您应该看到一个非常基础的Graphviz源

graph g {
  rankdir="TB";
  label="Some graph";

  n1 [ label="Some node" ];
  n2 [ label="Other node" ];
  n1 -- n2;
} /* /graph g */

如果您收到任何警告或建议,或没有任何内容,请检查您的PHP错误日志,并在继续之前修复这些问题。

验证Grafizzi代码

如果您的系统包含make命令,安装后运行以下命令:

make lint

您应该得到一个带有零警告的绿色栏。

生成文档

如果您的系统包含make和`doxygen`命令,以及GraphViz本身,您可以通过运行以下命令生成一个完全索引的源代码文档:

make docs

这将在doxygen/目录中生成一个包含内部搜索引擎的HTML文档。通过浏览到doxygen/html/index.html来使用它。

文档和搜索引擎甚至可以通过file:/// URLs使用,因此您不需要Web服务器即可访问它。

运行测试

如果您想确保 Grafizzi 在您的系统上运行良好,请运行以下命令:

make test

请注意,在开发模式下安装 Composer 将会安装 PHPUnit 到您的 vendor 文件夹。

清理

您可以通过运行以下命令来删除 php_error.log、生成的 doxygen 文档目录、生成的覆盖率报告以及许多散乱的生成文件:

make clean

这不会删除 vendor/ 目录。

祝您玩得开心!

许可协议

FOSSA Status

变更日志

  • 0.0.4:
    • 移除了对 PHP ≤ 8.1 的支持,增加了 PHP 8.3+ 的支持
    • 升级到 PHPUnit 11.2.x
    • 示例文件从 app/* 重命名为 example/*
    • 清理到 PHPstan 级别 7
  • 0.0.3:
    • 移除了对 PHP < 7.4 的支持,增加了 PHP 8.1+ 的支持
    • 升级到 PHPUnit 9.5.x
    • 清理到 PHPstan 级别 6
  • 0.0.2:
    • 移除了对 PHP 5.x 的支持,升级到 PHP 7.2/7.3
    • 升级到 PHPUnit 8.x
  • 0.0.1:
    • 移除了对 Monolog 的运行时依赖
    • 升级到 PHP/PHPunit 5.x。