elements / export-toolkit-bundle
此包的最新版本(v4.0.0)没有可用的许可证信息。
导出工具包提供配置Pimcore对象导出的功能
v4.0.0
2021-05-26 11:13 UTC
Requires
- elements/process-manager-bundle: >=4.0
- pimcore/pimcore: >=10.0
README
导出工具包提供配置pimcore对象导出的功能。可以定义针对不同输出通道和目标系统的导出。导出工具包的灵活和易于扩展的架构提供了许多钩子以供自定义功能,因此应该能够满足任何导出需求。每个导出的基础是一个导出配置,如下所述。
导出配置
导出配置是一个容器,用于配置特定pimcore对象的导出。
- 名称:导出配置的名称需要是唯一的
- 描述:描述可以包含关于导出配置的一些附加信息
- Pimcore对象类:导出配置始终针对一个pimcore对象类定义
- SQL条件:导出对象时应用的可选条件
- 查询语言:上述条件的查询语言
- 过滤器类:导出前对对象进行过滤的附加选项。选择类必须实现ExportToolkit_ExportService_IFilter接口,该接口有一个需要返回true或false的doExport方法。
- 使用对象保存钩子:指定当对象被保存时是否执行对象的导出。
- 条件修改器类:一个可以在运行时修改SQL条件的类。必须实现ExportToolkit_ExportService_IConditionModificator接口。
- 执行器类:一个执行工作配置的类。可以用于提供替代CLI脚本。必须实现ExportToolkit_ExportService_IExecutor接口。
属性簇
每个导出配置有一个或多个属性簇。属性簇是应按特定方式导出到特定目的地的属性的容器。
- 名称:属性簇的名称。没有其他功能。
- 簇解释器类:所选类必须扩展抽象类ExportToolkit_ExportService_AttributeClusterInterpreter_Abstract,并包含将数据导出到特定目的地和格式的所有逻辑。以下方法必须实现
- setUpExport:此方法在导出启动之前执行。例如,它可以用于清理旧导出文件、启动数据库事务等。如果不必要,只需将方法留空。
- commitDataRow:在导出所有定义的对象属性之后执行此方法。要导出的数据存储在数组$this->data[OBJECT_ID]中。例如,它可以用于将每行导出到目标数据库、将导出的条目写入文件等。如果不必要,只需将方法留空。
- commitData:在导出所有对象之后执行此方法。如果在commitDataRow方法中没有清理,则所有导出数据都存储在数组$this->data中。例如,它可以用于将所有数据写入xml文件或提交数据库事务等。
- deleteFromExport:当对象不再导出时执行此方法。例如,它可以用于从目标数据库中删除条目等。
- 配置:一个json字符串,作为配置对象传递给集群解释器类,并通过 $this->config 可用。这可以用于指定输出文件路径、表名等。
不同的属性集群可以用于将对象的日期导出到不同的目的地。例如,特定对象数据应导出为xml和json文件。另一个用例是将产品数据导出到某个输出通道。因此,一个属性集群可以将产品基本数据导出到特定的产品表中,第二个属性集群可以将所有产品关系导出到关系表中,第三个属性集群可以将所有产品图像复制到特定的文件系统位置。
属性
每个属性集群有一个或多个属性。属性是导出格式中的一个数据条目,在最简单的情况下,它也是pimcore对象类中的一个属性(例如,名称)。
- 名称:定义导出格式中属性的名称。如果没有指定getter类字段名,则也用作getter的名称来从pimcore对象检索数据。
- 字段名:定义pimcore对象属性的字段名。用作getter的名称来从pimcore对象检索数据。
- 地区:如果指定,则此地区将传递给getter以检索数据。
- getter类:指定getter类是集成个别数据检索的一种方式。这可能包括一些计算,从字段集合或对象砖块获取数据,从相关元素获取数据或所需的其他任何内容。所选的getter类需要实现具有get方法的接口ExportToolkit_ExportService_IGetter。
- 解释器类:指定解释器类是集成检索值的个别数据转换的一种方式。这可能包括一些文本转换、数字转换、从元素获取ID或路径或所需的其他任何内容。所选的解释器类需要实现具有interpret方法的接口ExportToolkit_ExportService_IInterpreter。
- 配置:传递给getter和解释器类的json字符串。因此,getter和解释器可以配置为自定义选项。
可用实现:
集群解释器类
ExportToolkit_ExportService_AttributeClusterInterpreter_DefaultCsv
- 将数据导出到csv文件。
- 可用配置选项
- filename:导出文件的文件名,相对于文档根目录
- deleteFile:启动时删除文件
ExportToolkit_ExportService_AttributeClusterInterpreter_DefaultJson
- 将数据导出到json文件。
- 可用配置选项
- filename:导出文件的文件名,相对于文档根目录
ExportToolkit_ExportService_AttributeClusterInterpreter_DefaultXml
- 将数据导出到xml文件。
- 可用配置选项
- filename:导出文件的文件名,相对于文档根目录
- rootElement:xml文件中根元素的名称
- rowElementName:xml文件中行元素的名称
getter类
ExportToolkit_ExportService_Getter_DefaultBrickGetterSequence
- 从对象砖块检索数据。您可以配置多个源,getter返回它找到的第一个数据。
- 可用配置选项
- _source:具有以下元素的_object数组
- brickfield:对象中砖块的字段名
- bricktype:砖块类型
- fieldname:砖块中属性的名称
- _source:具有以下元素的_object数组
ExportToolkit_ExportService_Getter_DefaultBrickGetterSequenceToMultiselect
- 从对象砖块检索数据。您可以配置多个源,getter返回它找到的所有数据的数组。
- 可用配置选项
- source:具有以下元素的_object数组
- brickfield:对象中砖块的字段名
- bricktype:砖块类型
- fieldname:砖块中属性的名称
- source:具有以下元素的_object数组
解释器类
ExportToolkit_ExportService_Interpreter_ArrayToString
- 将数组转换为逗号分隔的字符串。
ExportToolkit_ExportService_Interpreter_ElementToPath
- 将Element_Interface对象的实例转换为其路径。如果数据不实现Element_Interface,则返回空字符串。
ExportToolkit_ExportService_Interpreter_Translations
- 使用pimcore翻译来翻译值。
- 可用配置选项
- 翻译器:可能的值为admin或website,用于使用admin或website翻译来翻译值
在Pimcore < 5.4版本下运行
在Pimcore 5.4版本中,静态Pimcore文件(如图标)的位置已更改。为了使此包能在Pimcore < 5.4版本下工作,请将以下重写规则添加到您的.htaccess
文件中。
# rewrite rule for pre pimcore 5.4 core static files
RewriteRule ^bundles/pimcoreadmin/(.*) /pimcore/static6/$1 [PT,L]
Pimcore 4到5版本的迁移说明
- 将配置格式迁移到2.0版本(参见migrate-2.0.php)
- 将插件的配置文件从website/var/plugins/ExportToolkit移动到var/config/ExportToolkit/config.php
- 请注意,命名空间已更改!!!** 将ExportToolkit*更改为Elements\Bundle\ExportToolkitBundle* ** 这也影响您的导出配置。请检查export-toolkit-configurations.php
- 请注意,这也影响您的自定义实现(解释器、获取器等等)。因此,您可能需要更改代码。
- 调整您的crontab
- 默认输出目录也已更改(在您未指定输出文件时使用)到var/tmp/ExportToolkit