Typo3 - 来自预定命令的 bulkInsert - 代码应该放在哪里?

Typo3 - bulkInsert from a scheduled command - where should the code reside?

我使用 Extension Builder 创建了一个扩展。这已经创建了我必需的 table 以及存储库和控制器文件。

我创建了一个命令 class,其中包含一个每天调用一次的方法(通过调度程序扩展)。该命令的目的是 t运行 分类 table 并用新行的批量插入替换数据。

我找到了 bulkInsert 的示例代码,但是我不确定应该把它放在哪里?

我最初认为将它放在 Controller 中是合乎逻辑的解决方案,但也许有更好的地方来放置它?或者 运行 批量插入的更好方法?

批量插入需要我提供 table 名称,即 "testTable" 是 table 名称,我可以这样建立连接:

$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('testTable');

...但是像这样连接到 table 名称感觉不对,因为扩展的其余部分使用存储库。感觉有点脱节。

任何人都可以指导我应该在哪里以及如何做到这一点,以保持我的源代码美观和紧凑。

解决方案是创建一个单独的 table 连接实例,如下所示:

$connection = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable($tblname);

然后利用 "bulkInsert" 工具,传递 table 名称(再次)、记录数组和关联字段名称数组

$connection->bulkInsert($tblname, $records, $fieldnames);

直接通过存储库提供 bulkInsert 会很好,但我确信有一些合乎逻辑的原因导致这不可能。但是这个解决方案无论如何都很好用。