elgigi / har-parser
HAR 文件解析库
v1.1.0
2024-03-22 11:52 UTC
Requires
- php: ^8.0
- berlioz/helpers: ^1.8
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-22 12:50:15 UTC
README
解析和生成 HAR 文件格式 的库。
用法
使用 Parser
对象或 Log
实体加载您的 HAR 文件。
使用 Parser
类
use ElGigi\HarParser\Parser; $harFile = new Parser(); $log = $harFile->parse('/path/of/my/file.har', contentIsFile: true); $log = $harFile->parse(['my' => 'har decoded']);
使用 Log
实体类
use ElGigi\HarParser\Entities\Log; $log = Log::load(json_decode(file_get_contents('/path/of/my/file.har'), true));
实体
HAR 文件由多个实体分布
- 日志
- 创建者
- 浏览器
- 页面[]
- 页面时间
- 条目[]
- 请求
- Cookie[]
- 头部[]
- 请求数据
- 响应
- Cookie[]
- 头部[]
- 内容
- 时间
- 请求
构建器
有两种构建器可用于从实体构建 HAR 文件
Builder
: 从其他实体构建Log
实体BuilderStream
: 直接在流中构建 JSON 文件,以防止内存使用
两者都实现了 BuilderInterface
BuilderInterface::reset(): void
: 重置构建器数据BuilderInterface::setVersion(string $version): void
: 定义 HAR 文件版本(默认:1.2)BuilderInterface::setCreator(string $creator): void
: 设置创建者实体BuilderInterface::setBrowser(string $browser): void
: 设置浏览器实体BuilderInterface::addPage(Page ...$page): void
: 添加页面实体(或多个页面)BuilderInterface::addEntry(Entry ...$entry): void
: 添加条目实体(或多个条目)BuilderInterface::setComment(?string $comment): void
: 定义 HAR 文件注释
对于流构建器,构造函数尝试一个有效的资源(可写和可查找)。
对于标准构建器,构造函数接受一个 HAR 文件,例如,完成现有的 HAR。
匿名化 HAR
在某些情况下,例如单元测试,您可能需要匿名化您的 HAR 文件。
Anonymizer
类就是为此而设计的!
class Anonymizer { /** * Add header to redact. * * @param string ...$regex * * @return void */ public function addHeaderToRedact(string ...$regex): void; /** * Add query string to redact. * * @param string ...$regex * * @return void */ public function addQueryStringToRedact(string ...$regex): void; /** * Add post data to redact. * * @param string ...$regex * * @return void */ public function addPostDataToRedact(string ...$regex): void; /** * Add accepted mime. * * @param string ...$mime * * @return void */ public function addAcceptedMime(string ...$mime): void; /** * Add content to redact. * * @param array $regexes * * @return void */ public function addContentToRedact(array $regexes): void; /** * Add callback. * * @param callable ...$callback * * @return void */ public function addCallback(callable ...$callback): void; /** * Anonymize HAR file. * * @param Log $log * * @return Log * @throws InvalidArgumentException */ public function anonymize(Log $log): Log; }