we / spreadsheetimport
一个流程包,用于将电子表格记录导入可配置的域对象。
Requires
- typo3/flow: *
This package is not auto-updated.
Last update: 2024-09-15 05:18:24 UTC
README
一个流程包,用于将电子表格记录导入可配置的域对象。
域模型配置
设置
该包支持导入不同的域模型。每个模型都需要在设置文件中进行配置。特定的配置也称为“上下文”。
最小配置示例 'default' 上下文
WE:
SpreadsheetImport:
default:
domain: WE\Sample\Domain\Model\User
arguments: ~
通过注释映射
要导入的域模型属性由 Mapping
注解指定,然后可以将其映射到电子表格的列中。
以下方式指定一个简单的属性
/**
* @var string
* @SpreadsheetImport\Mapping
*/
$firstName
Mapping
支持指定进一步配置的属性,例如修改获取器/设置器、标签和标识符的定义。请参阅 WE\SpreadsheetImport\Annotations\Mapping
类以供参考。
参数值
除了从电子表格导入的值外,还可以通过参数或在设置中静态指定固定值。示例
arguments:
- { name: category, domain: 'WE\Sample\Domain\Model\UserCategory', identifier: TRUE }
- { name: comment, static: 'Sample import' }
'category' 参数期望一个 UserCategory
对象作为参数传递。它将通过 setCategory(..)
设置为对象。此外,此值将以与 Mapping 注解中标识符属性相同的方式用作标识符。'comment' 参数具有静态值,并将简单地调用 UserCategory::setComment('Sample import')
。
使用方法
技术
每次导入时,都需要创建一个特定的 \WE\SpreadsheetImport\Domain\Model\SpreadsheetImport
对象,然后可以通过 SpreadsheetImportService::import()
函数进行处理。该对象包含域模型与电子表格列之间的列映射。
如何创建 SpreadsheetImport
对象以及导入函数如何进行进度可能因实现而异,并且很容易进行修改。此包中实现的流程作为一个示例场景,但可以使用上面记录的简单配置直接使用。
示例实现
- 调用
SpreadsheetImportController
的newAction
创建新的SpreadsheetImport
对象。 - 在对话框的下一步中,需要完成配置的域模型映射属性与电子表格列之间的映射。
- 一个对象映射预览显示应用的映射,并需要确认。
- 确认后,导入将被安排进行。
- 必须调用
./flow spreadsheetimport:import
函数来处理导入。
要使用示例实现,可能需要扩展控制器并重写 context
属性。