prooph/message-flow-analyzer

prooph项目的静态代码分析器

v0.1.0 2018-03-05 18:20 UTC

This package is auto-updated.

Last update: 2024-09-05 13:47:16 UTC


README

用于提取prooph项目消息流的静态代码分析器

安装

composer require --dev prooph/message-flow-analyzer

配置

分析器可以使用json文件进行配置。默认情况下,分析器使用当前工作目录中的prooph_analyzer.json。默认配置的示例可以在测试示例项目中找到。

运行

php vendor/bin/prooph-analyzer project:analyze

为什么?

prooph消息流分析器扫描您的项目以查找prooph消息,并收集这些消息如何在您的项目源代码中流动的信息:

分析包含以下信息:

  • 命令、事件、查询
  • 每个消息的消息处理器(命令处理器、事件监听器、进程管理器等)
  • 每个消息的消息生产者(控制器、cli命令、进程管理器等)
  • 每个事件的记录器(实现prooph的AggregateRoot或使用EventProducerTrait的类)

消息流将写入一个输出文件(默认为prooph_message_flow.json)。

目前就是这样。但想象一下你可以用这些信息做什么!我们将添加不同的输出格式化工具来生成d3js或draw.io的配置。消息流分析器也将成为即将到来的event-store-mgmt-ui的一部分,允许您将消息流与您的事件流连接起来进行调试和监控。

如何?

该包使用优秀的库roave/better-reflectionnikic/php-parser(这也在Roave/BetterReflection内部使用)

进行中

prooph/message-flow-analyzerevent-store-mgmt-ui正在开发中。尚未定义路线图。如果您认为您的项目可以从稳定版本中受益,并且您或您的公司希望支持开发,那么请联系我们

过滤器

您可以添加文件和目录的包含和排除过滤器。prooph/message-flow-analyzer附带一些默认过滤器。请参阅上面的链接示例配置。过滤器实现可以在过滤器目录中找到。

类访问者

类访问者会对项目中发现的所有php类进行调用,前提是不被过滤器排除。它们接受一个Roave\BetterReflection\Reflection\ReflectionClass和一个Prooph\MessageFlowAnalyzer\MessageFlow作为输入,如果访问者在类中找到一些有趣的东西,它可以向MessageFlow添加这些信息。

再次,prooph/message-flow-analyzer附带默认类访问者(请参阅示例配置),这些访问者可以在访问者目录中找到。

针对proophessor-do运行

您可以通过运行它来查看prooph/message-flow-analyzer的实际效果,针对proophessor-do

  1. 克隆proophessor-do
  2. prooph/message-flow-analyzer: dev-master添加到proophessor-do的composer.jsonrequire-dev配置中
  3. 运行composer install
  4. prooph_analyzer.json复制到proophessor-do的根目录
  5. ExcludeBlacklistedFiles.php 文件复制到 src/Infrastructure/ProophAnalyzer 目录。这是必要的,因为 proophessor-do 包含了mongodb连接的预配置工厂,但是mongo默认未安装,因此无法加载mongo类。
  6. "Prooph\\ProophessorDo\\Infrastructure\\ProophAnalyzer\\ExcludeBlacklistedFiles" 添加到 prooph_analyzer.json 文件的 fileInfoFilters 数组的最后一条。
  7. 运行 php vendor/bin/prooph-analyzer project:analyze,并查看生成的输出文件 prooph_message_flow.json

如果现在觉得这项工作太多,只想看到结果:prooph_message_flow.json