buro26/sync-component

v0.0.7 2024-03-05 08:45 UTC

This package is auto-updated.

Last update: 2024-09-05 09:49:28 UTC


README

这是Buro26同步项目的同步组件。它使用Swift项目。

该项目用于在各个系统之间同步数据。同步数据由'Handler'提供,这些是负责收集数据并在'HandlerSyncItems'中对数据进行格式化的类。这些项目遵循通用接口。根据这些数据,同步组件将确定是否有更改,如果有,则将更新后的数据保存到数据库中并注册更新。

该组件提供API以请求自某个日期以来的所有更新、创建和删除。

入门

要求

  • PHP 8.1或更高版本
  • Swift 0.2.16或更高版本

安装

在您的Swift项目中安装组件。

composer require buro26/sync-component

在Swift中注册组件

在项目的根services.yaml文件中注册组件。

services:
  _defaults:
    autowire: false
    autoconfigure: true
    public: true
  
  Foobar\:
    resource: 'app/Foobar/*'
  
  Buro26\Sync\:
    resource: 'vendor/buro26/sync-component/src/*'

处理器

处理器是负责收集数据并在'HandlerSyncItems'中对数据进行格式化的类。这些项目遵循通用接口。根据这些数据,同步组件将确定是否有更改,如果有,则将更新后的数据保存到数据库中并注册更新。

中间件

中间件用于同步过程中操纵或验证数据。中间件按照提供的顺序执行。中间件应实现Buro26\Sync\Middleware\MiddlewareInterface接口。

日志记录

日志记录可以记录到日志文件或控制台。

执行同步

要执行同步,您可以使用sync:run命令。

php bin/console sync:run

要运行特定作用域和标记的同步,您可以使用--scope--tag选项。

php bin/console sync:run --scope=combipac --tag=product

列出已注册的处理器

要列出所有已注册的处理器,您可以使用sync:handlers:list命令。

php bin/console sync:handlers:list

这将显示如下内容。

$ bin/console sync:handlers:list

Registered 5 handlers
=====================

 ----------------------- ---------------------- ------ ----------------------------------
  scope                   tag                    type   FQCN
 ----------------------- ---------------------- ------ ----------------------------------
  combipac                category               IN     Combipac\Handler\CategoryHandler
  combipac                machine                IN     Combipac\Handler\MachineHandler
  combipac                product                IN     Combipac\Handler\ProductHandler
  multivers => magento2   customer => customer   OUT    Magento2\Handler\CustomerHandler
  compano => magento2     product => product     OUT    Magento2\Handler\ProductHandler
 ----------------------- ---------------------- ------ ----------------------------------

获取同步数据

REST

可以使用GET /sync/latest/[a:scope]/[a:tag]/端点请求同步数据。此端点接受以下查询参数

  • from: 应返回同步数据的起始日期。这应该是一个有效的日期字符串。
  • to: 应返回同步数据的结束日期。这应该是一个有效的日期字符串。

端点将返回具有三个属性的对象

  • creations: 自提供的日期以来创建的所有项目的数组。
  • updates: 自提供的日期以来更新过的所有项目的数组。
  • deletions: 自提供的日期以来删除的所有项目的数组。

GraphQL

可以使用SyncItemsLatest查询请求同步数据。此查询接受以下参数

  • scope: 应返回同步数据的作用域。
  • tag: 应返回同步数据的标记。
  • from: 应返回同步数据的起始日期。这应该是一个有效的日期字符串。
  • to: 应返回同步数据的结束日期。这应该是一个有效的日期字符串。

查询将返回具有三个属性的对象

  • creations: 自提供的日期以来创建的所有项目的数组。
  • updates: 自提供的日期以来更新过的所有项目的数组。
  • deletions: 自提供的日期以来删除的所有项目的数组。