torqit / data-importer-extensions-bundle
Requires
- openspout/openspout: ^4.0
- pimcore/admin-ui-classic-bundle: ^1.1
- pimcore/compatibility-bridge-v10: ^1.0
- pimcore/data-importer: ^1.8
- pimcore/pimcore: ^11.0
Requires (Dev)
- ekino/phpstan-banned-code: ^1.0
- friendsofphp/php-cs-fixer: ^3.34
- phpstan/phpstan: ^1.10
- phpstan/phpstan-doctrine: ^1.3
This package is auto-updated.
Last update: 2024-09-12 16:30:39 UTC
README
Torq IT 数据导入扩展
此扩展向 Pimcore 数据导入 套件添加了多个额外功能。
路径语法
我们的一些扩展使用 路径 语法,该语法允许根据导入值创建路径。
以一个 Excel 文件为例
使用路径语法构建路径 /Products/Cars/GMC/Sierra/2015
的方法是 /Products/Cars/$[1]/$[2]/$[0]
。数字值对应于 Excel 文件中值的索引(从 0 开始)。
对于 XML 文件
<Cars>
<Car>
<Make>GMC</Make>
<Model>Sierra</Model>
<Year>2015</Year>
<Color>White</Color>
</Car>
<Car>
<Make>Chevrolet</Make>
<Model>Silverado</Model>
<Year>2001</Year>
<Color>Blue</Color>
</Car>
</Cars>
路径语法 将使用属性名称,例如 /Products/Cars/$[Make]/$[Model]/$[Year]
数据解释器
数据解释器是数据导入器套件支持的可用“文件格式”。我们添加了一些自己的。
高级 XLSX 解释器
高级 XLSX 解释器在默认 XLSX 解释器的基础上进行了一些改进。
此解释器使用 openspout
作为 Excel 解析器。Open Spout XLSX 解析使用的内存比使用 PHPOffice
的默认 XLSX 解析少得多。我们见过在 PHPOffice 上需要 >4GB RAM 的文件,使用 openspout 只需不到 50MB。我们还发现 PHPOffice 实现中存在一些内存泄漏情况,服务器上分配的 RAM 从未释放。
批量 XLSX 解释器
此批量 XLSX 解释器具有与高级 XLSX 解释器相同的选项。主要区别在于 Excel 文件被转换为 CSV 并使用 LOAD LOCAL INFILE
载入到数据导入器队列。这 非常显著地 提高了加载队列表的性能。我们见过 200K 行在 <5 秒内加载完成。我们在 16GB RAM 服务器上的经验表明,默认 XLSX 解释器通常无法成功导入超过 30K 行的 Excel 文件。
此功能需要数据库服务器配置为允许本地文件 / 文件夹权限!
有关 LOCAL INFILE
的信息,请参阅 MySQL 文档。
此外,在数据库连接中,您需要添加批量选项(例如 1001:true)
doctrine:
dbal:
connections:
default:
host: "%env(string:DATABASE_HOST)%"
port: 3306
user: "%env(string:DATABASE_USER)%"
password: "%env(string:DATABASE_PASSWORD)%"
dbname: "%env(string:DATABASE_NAME)%"
mapping_types: { enum: string, bit: boolean }
server_version: "5.5.5-10.4.22-MariaDB-1:10.4.22+maria~focal"
options:
1001: true
批量 CSV 解释器
批量 CSV 解释器具有与常规 CSV 解释器相同的选项,但与批量 XLSX 解释器一样,它使用 LOAD LOCAL INFILE
来排队数据行。请参阅 批量 XLSX 解释器部分 以获取限制和要求。
SQL 解释器
当使用 SQL 数据加载器 时使用此解释器。幕后,它使用批量 CSV 解释器,因为它非常快。如果遇到错误,请参阅 批量 XLSX 解释器部分 以获取限制和要求。
基于 XML Schema 的预览解释器
此解释器是对默认基于 XML 的解释器的扩展,它将加载由提供的 Xsd 文件定义的所有字段,以供预览屏幕使用。
数据加载器
SQL 数据加载器
SQL数据加载器使用DBAL来允许从SQL源加载数据。只要在database.yaml
中配置正确,就可以使用DBAL支持的任何数据库的连接。数据库配置可以放在任何有效的Symfony配置文件中,只要其格式正确,就像在database.yaml
中看到的那样。
设置SQL加载器
- 在
database.yaml
中创建一个新的连接,如果使用Pimcore数据库则跳过此步骤。 - 从连接名称下拉菜单中选择正确的连接
- 使用选择、where、from、Group By和Limit字段提供有效的查询。
- 确保在文件格式下选择SQL!此加载器在加载SQL时生成CSV文件。
数据目标
数据目标控制数据在映射到数据对象时的流向。
高级分类存储
这与分类存储数据目标相同,但它在Direct
数据目标中添加了Overwrite
选项。
图像库附加器
这可以用于向图像库字段添加图像。
属性
这用于在数据对象上设置属性。
运算符
常量
此运算符仅返回一个常量字符串。如果想要控制OBJECT_TYPE
对象或变体,则非常有用。
SafeKey
这确保了一个值被清理为有效的键值。
导入资产高级
在导入资产时,这允许两个额外的功能。
路径使用上面描述的路径语法将资产存储在指定的文件夹中。
URL属性指定资产上存储来源URL的属性的名称。
算术
这允许您使用定义的常量和您的值进行加法、减法、乘法或除法。
正则表达式替换
这允许您使用preg_replace进行字符串替换。
元素加载
高级路径策略
这允许使用前面在本ReadMe中描述的路径语法加载对象。
使用示例Excel文件中的路径部分,您可以使用路径语法/Products/Cars/$[1]/$[2]/$[0]
加载位于/Products/Cars/GMC/Sierra/2015
的数据对象。
属性
这允许根据存储在其上的属性值加载数据对象。
这假设属性值是唯一的。如果存在非唯一值,则将返回一个随机对象,该对象符合标准。
元素创建
高级父策略
这允许使用前面在本ReadMe中描述的路径语法定位对象。
使用示例Excel文件中的路径部分,您可以使用路径语法/Products/Cars/$[1]/$[2]/$[0]
创建具有父级/Products/Cars/GMC/Sierra/2015
的数据对象。