我应该在实用程序类或服务类中编写所有函数吗?

时间:2016-09-15 18:29:49

标签: php typo3 extbase typo3-7.6.x

我目前正在开发一个在文本文件中处理XML的项目。我想提取内容,我想将它添加到表tt_content。我的问题是我应该把所有函数放在哪里(upload-file,extract-content,insert-tt_content)?

2 个答案:

答案 0 :(得分:6)

实用程序用于不依赖于状态的静态功能。好例子是PathUtilityStringUtility。一旦你调用了一个函数,就可以完成任务,而不是进一步。

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

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

另外,请务必查看有关体系结构指南的核心文档:https://docs.typo3.org/typo3cms/CodingGuidelinesReference/latest/PhpArchitecture/ModelingCrossCuttingConcerns/StaticMethods/Index.html

答案 1 :(得分:0)

您可以将您的函数编写到UtilityClass或ServiceClass中,或者(我认为更好的方法)使用它们。按任务分组您的功能,例如StringUtility,FileUtility等。您的ServiceClass使用而不是所需的UtilityFunction。

所以你的功能很少,你可以一次又一次地使用它。例如,看看其他伟大的扩展名为tx_news,femanager等。