SuperAPI AI 工具集

unopim-data-transfer

数据与分析

查看项目

更新于 10-16 02:29

技能介绍

用途:本技能用于配置 UnoPim 的导入/导出,构建 Exporter、Importer、Validator 类,调试排队的数据传输作业并为它们接线。导入/导出在 packages/Webkul/DataTransfer 中以排队、分批、状态追踪的流水线运行,类通过 config 实例化,签名错误会在运行时致命,编造的方法会被静默忽略。

前置背景:Laravel 13 / PHP 8.4 惯用法用 unopim-standards;命令解析用 unopim-exec;声明完成前用 unopim-verify;包脚手架、provider、凭据与 cURL 客户端用 unopim-plugin-development。

参考文件:pipeline.md(作业流、状态机、队列、模型、调试卡住或失败作业)、exporters.md(构建 Exporter、流式数据源、exporters.php / quick_exporters.php 接线)、importers.md(构建 Importer、importers.php 接线、分块查找、错误码)、validators.md(作业校验器、声明式规则、命名与接线)。

真实 API 要点:核心拼写为 initilize()(非 initializeExport)与 getSkippedtemsCount(),子类需匹配,改成正确拼写会创建核心永不调用的新方法。取过滤器值用 $this->getFilters()['credential']。exportBatch() 以 Event::dispatch 开头并调用 $this->initilize(),结束时用 $this->updateBatchState($batch->id, Export::STATE_PROCESSED)。校验器继承 Validators\JobInstances\Default\JobValidator,签名为 validate(array $data, array $options = []): void,抛 ValidationException。Importer 需实现 importBatch(JobTrackBatchContract $batch): bool 与 validateRow(array $rowData, int $rowNumber): bool。真实错误码为 ERROR_* 字符串常量,依赖选择用 depends_on,dependent 会被静默丢弃。

硬性规则:Exporter 继承 AbstractExporter;Importer 继承 AbstractImporter 且必须向 parent::__construct() 传入 JobTrackBatchRepository。计数用 createdItemsCount、updatedItemsCount、skippedItemsCount,不得互换。异步四元组 async、track_by、label_by、list_route 仅在路由支持的 select 选项时需要;固定列表用静态内联选项。导出源对大实体必须流式:重写 getResults() 为 id 游标(keyset)源,如 ProductCursor.php;继承默认会 hydrate source->all(),仅适用于小实体。批量存在性查找用 array_chunk($keys, 1000) + whereIn。状态机含 validating、paused、cancelled 等。配置标题与面向用户字符串为翻译键。方法体内不写注释。

限制:资料未提供安装命令、收费信息或平台要求;所有用法以现有条目为准,缺失内容暂未提供。