phpflo/phpflo-flowtrace

记录 phpflo 网络执行以进行调试和分析

v1.0.0 2017-03-21 21:31 UTC

This package is auto-updated.

Last update: 2024-08-24 04:37:57 UTC


README

Build Status Code Coverage Scrutinizer Code Quality License

记录 phpflo 网络执行以进行调试或分析。

跟踪事件

每次您想要调试您的流程时,您都需要查看您组件之间数据转换,连接/断开等。

使用这个库,您现在可以这样做。

设置

它几乎与使用 phpflo 本身一样简单。添加 composer require phpflo/flowtrace 并初始化如下

<?php
require __DIR__ . '/../../vendor/autoload.php';

$traceableNetwork = new \PhpFlo\FlowTrace\TraceableNetwork(
    new PhpFlo\Core\Network(
        new PhpFlo\Core\Builder\ComponentFactory()
    ),
    new \PhpFlo\FlowTrace\Logger\SimpleFile(__DIR__ . DIRECTORY_SEPARATOR . 'flow.log', 'info')
);
$traceableNetwork
    ->boot(__DIR__.'/count.fbp')
    ->run($fileName, "ReadFile", "source")
    ->shutdown();

这将把所有您的数据流程输出到 flow.log 中,您可以在以后进行审查。如您所注意到的,日志记录器有一个“级别”给出,这是 PSR3 兼容的——事实上,整个 SimpleFile 日志记录器只是 PSR3 AbstractLogger 的基本实现。您可以轻松地将此日志记录器替换为您自己的 PSR 兼容版本。提供一定级别将为您提供更多详细信息。“debug”将提供所有连接/断开,而“info”只提供数据流和数据。

日志

日志与 flowbased/flowtrace 兼容,并在 Flowhub 中重现流程。

读取 count.fbp 文件示例(info)

-> source ReadFile  DATA examples/linecount/count.fbp
ReadFile out -> in SplitbyLines  DATA ReadFile(ReadFile) out -> in SplitbyLines(SplitStr)
ReadFile(ReadFile) error -> in Display(Output)
SplitbyLines(SplitStr) out -> in CountLines(Counter)
CountLines(Counter) count -> in Display(Output)

SplitbyLines out -> in CountLines  DATA ReadFile(ReadFile) out -> in SplitbyLines(SplitStr)
SplitbyLines out -> in CountLines  DATA ReadFile(ReadFile) error -> in Display(Output)
SplitbyLines out -> in CountLines  DATA SplitbyLines(SplitStr) out -> in CountLines(Counter)
SplitbyLines out -> in CountLines  DATA CountLines(Counter) count -> in Display(Output)
SplitbyLines out -> in CountLines  DATA 
CountLines count -> in Display  DATA i:5;

示例(debug)

-> source ReadFile CONN
-> source ReadFile DATA examples/linecount/count.fbp
 ReadFile out -> in SplitbyLines CONN
 ReadFile out -> in SplitbyLines DATA ReadFile(ReadFile) out -> in SplitbyLines(SplitStr)
ReadFile(ReadFile) error -> in Display(Output)
SplitbyLines(SplitStr) out -> in CountLines(Counter)
CountLines(Counter) count -> in Display(Output)

 ReadFile out -> in SplitbyLines DISC
 SplitbyLines out -> in CountLines CONN
 SplitbyLines out -> in CountLines DATA ReadFile(ReadFile) out -> in SplitbyLines(SplitStr)
 SplitbyLines out -> in CountLines DATA ReadFile(ReadFile) error -> in Display(Output)
 SplitbyLines out -> in CountLines DATA SplitbyLines(SplitStr) out -> in CountLines(Counter)
 SplitbyLines out -> in CountLines DATA CountLines(Counter) count -> in Display(Output)
 SplitbyLines out -> in CountLines DATA 
 SplitbyLines out -> in CountLines DISC
 CountLines count -> in Display CONN
 CountLines count -> in Display DATA i:5;
 CountLines count -> in Display DISC
-> source ReadFile DISC