griiv/synchroengine

此软件包最新版本(1.0.0)没有可用的许可信息。

创建导入和导出命令和代码的集合

安装: 0

依赖: 0

建议者: 0

安全: 0

星星: 0

观察者: 1

分支: 0

开放问题: 0

类型:prestashop-module

1.0.0 2024-03-04 13:40 UTC

This package is auto-updated.

Last update: 2024-09-04 15:25:25 UTC


README

Griiv同步模块用于创建通过CSV文件、文本文件、Prestashop API、数据库、REST API等进行的导入和导出流...

它还允许通过多个子任务的并行处理来处理大量数据。

例如,一个包含1,000,000条记录的CSV文件可以通过100个并行运行的子任务进行处理,每个子任务处理10,000条输入数据。

此库使用 symfony/process 库进行并行处理。

可用的Symfony命令

  • gsynchro:add-export : 创建导出
  • gsynchro:add-import : 创建导入
  • gsynchro:add-sequence : 创建序列
  • gsynchro:create-ftp-folders : 创建FTP文件夹结构
  • gsynchro:execute : 启动导入、导出或序列

特别是用于crontab的用法:php bin/console gsynchro:execute MonImport

一般配置 modules/griivsynchroengine/config/services.yml

  • gsynchro.importPath : 放置要导入文件的FTP路径
  • gsynchro.importBackup : 存储已导入文件的FTP路径
  • gsynchro.exportPath : 放置用于外部服务的文件的FTP路径
  • gsynchro.exportBackup : 存储已导出文件的FTP路径
  • gsynchro.logsPath : 包含日志的文件夹路径
  • gsynchro.batchSynchro : 子任务的PHP可执行文件路径

创建导入

要创建导入

如果该文件夹不在项目根目录下,首先运行命令 php bin/console gsynchro:create-ftp-folders

运行命令 php bin/console gsynchro:add-import gsynchro Customers

将创建以下文件:_PS_ROOT_DIR_/modules/griivsynchroengine/src/Synchro/Import/CustomersImport.php

请记得在你的模块中运行 composer dumpautoload 以更新自动加载

以下是创建文件的示例内容

namespace Griiv\SynchroEngine\Synchro\Import;

use Griiv\SynchroEngine\Synchro\ImportBase;

class CustomersImport extends ImportBase
{
    protected function initDataSources()
    {
        // TODO: Implement initDataSources() method.
    }
    
    protected function initItemDefinition()
    {
        // TODO: Implement initItemDefinition() method.
    }
    
    protected function processRow($dataArray)
    {
        // TODO: Implement processRow() method.
    }
}

方法 initDataSources() 用于初始化希望用于导入的数据源(文件、API、数据库请求等)

方法 initItemDefinition() 用于定义数据源的结构,例如,对于CSV文件,这将是要处理文件的列名

方法 processRow() 将被调用来处理数据源的一组数据

还可以为每个导入覆盖以下方法

initLogger() : 允许初始化导入的logger。默认情况下,每个导入的日志文件是针对 SynchroBase::initLogger()

创建导出

数据源

数据目标

内部结构

待办事项

  1. 为ItemProperty实施验证器
  2. 实施序列
  3. 实施日志轮转文件
  4. 导入后实施gzip文件备份(针对文件)
  5. 为Prestashop添加挂钩
  6. 在.backup中实施文件轮转