transformers/mapping-transformer
最新稳定版本:3.0.2
Composer 安装命令:
composer require transformers/mapping-transformer
包简介
Integrates Mapper to transform array collections using Mappings.
README 文档
README
MappingTransformer integrates Mapper into Porter to support data transformations using Mapping objects. A full discussion of Mapper is beyond the scope of this document but the linked repository contains comprehensive documentation. MappingTransformer builds on Mapper by providing a powerful mapping strategy called SubImport.
Sub-imports
The SubImport strategy provides a way to join data sets together. A mapping may contain any number of sub-imports, each of which may receive a different ImportSpecification. A sub-import causes Porter to begin a new import operation and thus supports all import options without limitation, including importing from different providers and applying a separate mapping to each sub-import.
Signature
SubImport(ImportSpecification|callable $specificationOrCallback)
$specificationOrCallback– Either anImportSpecificationinstance orcallablethat returns such an instance.
ImportSpecification Example
The following example imports MyImportSpecification and copies the foo field from the input data into the output mapping. Next it performs a sub-import using MyDetailsSpecification and stores the result in the details key of the output mapping.
$records = $porter->import( (new MyImportSpecification) ->setMapping(new AnonymousMapping([ 'foo' => new Copy('foo'), 'details' => new SubImport(MyDetailsSpecification), ])) );
Callback example
The following example is the same as the previous except MyDetailsSpecification now requires an identifier that is copied from details_id present in the input data. This is only possible using a callback since we cannot inject strategies inside specifications.
$records = $porter->import( (new MyImportSpecification) ->setMapping(new AnonymousMapping([ 'foo' => new Copy('foo'), 'details' => new SubImport( function (array $record) { return new MyDetailsSpecification($record['details_id']); } ), ])) );
统计信息
- 总下载量: 73.2k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 1
其他信息
- 授权协议: LGPL-3.0
- 更新时间: 2017-01-29