skyree/document-hash-indexer
Composer 安装命令:
composer require skyree/document-hash-indexer
包简介
Index csv or json documents as key-hash pairs in a yaml file
README 文档
README
This library allows you to generate an index of hashed values from a csv file or a list of json strings.
The result is a yaml file that can be easily used for quick diffs in order to spot changes, additions and deletions.
Pre-requisite
- php 7.1
- ext-json
Installation
Run composer require skyree/document-hash-indexer from your project.
Getting started
All it takes is to instantiate a HashIndexer and run the hash method with the desired key.
Example
$hashIndexer = new HashIndexer(new JsonParser(), new LazyErrorHandler()); $outputFile = $hashIndexer->hash('file.json', 'foo'); echo file_get_contents($outputFile);
with file.json containing the following
{"foo": "aaa", "bar": [{"a": 1, "b": 2}]}
{"foo": "bbb", "bar": [{"y": 4, "z": 5}]}
will result in
aaa: 7dc9c52dbf3e5a436ac2a40affed4d16 bbb: 288a8a3a1c2a8a370ea20b88b9b0f426
Important note: As mentioned in the description, for json documents, the expected input is list of json strings, not a properly formatted json object.
Important note 2: Make sure your input document has a unique key (a csv column whose values are all different or a json node whose value differs for each line), otherwise the generated yaml will be invalid as duplicates are forbidden.
Parsers
This library comes with 2 parsers:
ParserJsonParserCsv
You can create and use your own parsers by implementing ParserInterface
ErrorHandlers
These handlers are used to provide a behavior when a key is not found on a line; This library comes with 2 handlers:
LazyErrorHandlerwhich basically ignores the errorThresholdErrorHandlerwhich allows up to n errors before interrupting
You can create and use your own handlers by implementing ErrorHandlerInterface
Integration with Symfony
This library can easily be defined as one or multiple services
Skyree\DocumentHashIndexer\Parser\JsonParser: ~ Skyree\DocumentHashIndexer\Parser\CsvParser: ~ Skyree\DocumentHashIndexer\ErrorHandler\LazyErrorHandler: ~ my_project.json_hash_indexer: class: Skyree\DocumentHashIndexer\HashIndexer arguments: $parser: '@Skyree\DocumentHashIndexer\Parser\JsonParser' $errorHandler: '@Skyree\DocumentHashIndexer\ErrorHandler\LazyErrorHandler' my_project.csv_hash_indexer: class: Skyree\DocumentHashIndexer\HashIndexer arguments: $parser: '@Skyree\DocumentHashIndexer\Parser\CsvParser' $errorHandler: '@Skyree\DocumentHashIndexer\ErrorHandler\LazyErrorHandler'
skyree/document-hash-indexer 适用场景与选型建议
skyree/document-hash-indexer 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 12 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 skyree/document-hash-indexer 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 skyree/document-hash-indexer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-12-09