我应该把所有的函数都写在实用程序类中还是服务类中?


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

我目前正在研究一个处理文本文件中的XML的项目。我想提取的内容,我想把它添加到表tt_content。我的问题是我应该把所有的功能(上传文件,提取内容,插入tt_content)?

实用程序用于不依赖于状态的静态功能。很好的例子是PathUtilityStringUtility。一旦你调用了一个函数,它就完成了任务,没有其他的了。

另一方面,服务可以处理状态,通常更复杂。你可以用URL初始化某种DownloadService,然后获取它,最后做一些后期处理。一个核心的例子是MarkerBasedTemplateService

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

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

您可以将您的函数写入UtilityClass或ServiceClass中,或者(我认为更好的方法)您使用两者。按任务对函数进行分组,例如stringtility, FileUtility等。

所以你有小函数,你可以一次又一次地使用它。例如,看看其他伟大的扩展,如tx_news, femmanager等