定制 skyree/document-hash-indexer 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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:

  • ParserJson
  • ParserCsv

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:

  • LazyErrorHandler which basically ignores the error
  • ThresholdErrorHandler which 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 我们能提供哪些服务?
定制开发 / 二次开发

基于 skyree/document-hash-indexer 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 6
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-12-09