prooph / message-flow-analyzer
prooph项目的静态代码分析器
Requires
- nikic/php-parser: ^3.1
- roave/better-reflection: ^2.0
- symfony/console: ^3.3 || ^4.0
Requires (Dev)
- malukenho/docheader: ^0.1.4
- phpunit/phpunit: ^6.0
- prooph/bookdown-template: ^0.2.3
- prooph/common: ^4.1
- prooph/event-sourcing: ^5.2
- prooph/php-cs-fixer-config: ^0.1.1
- satooshi/php-coveralls: ^1.0
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-reflection和nikic/php-parser(这也在Roave/BetterReflection内部使用)
进行中
prooph/message-flow-analyzer
和event-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。
- 克隆proophessor-do
- 将
prooph/message-flow-analyzer: dev-master
添加到proophessor-do的composer.json
的require-dev
配置中 - 运行composer install
- 将prooph_analyzer.json复制到proophessor-do的根目录
- 将ExcludeBlacklistedFiles.php 文件复制到
src/Infrastructure/ProophAnalyzer
目录。这是必要的,因为 proophessor-do 包含了mongodb连接的预配置工厂,但是mongo默认未安装,因此无法加载mongo类。 - 将
"Prooph\\ProophessorDo\\Infrastructure\\ProophAnalyzer\\ExcludeBlacklistedFiles"
添加到prooph_analyzer.json
文件的fileInfoFilters
数组的最后一条。 - 运行
php vendor/bin/prooph-analyzer project:analyze
,并查看生成的输出文件prooph_message_flow.json
如果现在觉得这项工作太多,只想看到结果:prooph_message_flow.json