我应该将我所有的函数写在实用程序-class 还是服务-class 中?

Should i write all my function in an utility-class or in a service-class?

我目前正在处理一个处理文本文件中 XML 的项目。我想提取内容并将其添加到 table tt_content。我的问题是我应该把所有功能(上传文件、提取内容、插入-tt_content)放在哪里?

您可以将函数写入 UtilityClass 或 ServiceClass 中,或者(我认为更好的方法)同时使用两者。按任务对您的功能进行分组,例如StringUtility、FileUtility 等。您的 ServiceClass 使用的比所需的 UtilityFunction。

所以你的功能很少,可以反复使用。例如,看看其他很棒的扩展,如 tx_news、femanager 等

实用程序用于不依赖于状态的静态功能。 PathUtilityStringUtility 就是很好的例子。一旦你调用一个函数,它就完成了工作,仅此而已。

另一方面,服务可以处理状态并且通常更复杂。您可以使用某种 DownloadService 初始化为 URL,然后获取它,最后进行某种 post 处理。一个核心示例是 MarkerBasedTemplateService.

根据经验,实用程序没有依赖关系,也不会调用其他(非静态)方法。服务更复杂,可能会调用其他服务。服务可能有一个内部状态。

还要确保检查有关体系结构指南的核心文档:https://docs.typo3.org/typo3cms/CodingGuidelinesReference/latest/PhpArchitecture/ModelingCrossCuttingConcerns/StaticMethods/Index.html