【发布时间】:2016-09-15 18:29:49
【问题描述】:
我目前正在处理一个处理文本文件中的 XML 的项目。我想提取内容并将其添加到表 tt_content。我的问题是我应该将所有功能(上传文件、提取内容、插入 tt_content)放在哪里?
【问题讨论】:
标签: php typo3 extbase typo3-7.6.x
我目前正在处理一个处理文本文件中的 XML 的项目。我想提取内容并将其添加到表 tt_content。我的问题是我应该将所有功能(上传文件、提取内容、插入 tt_content)放在哪里?
【问题讨论】:
标签: php typo3 extbase typo3-7.6.x
实用程序用于不依赖于状态的静态功能。很好的例子是PathUtility 和StringUtility。一旦你调用了一个函数,它就完成了工作,没有更多的事情。
另一方面,服务可以处理状态并且通常更复杂。你可以有某种DownloadService,它用一个 URL 初始化,然后获取它,最后进行某种后处理。一个核心示例是MarkerBasedTemplateService。
根据经验,实用程序没有依赖项,也不会调用其他(非静态)方法。服务更复杂,可能会调用其他服务。服务可能有一个内部状态。
还要确保查看有关架构指南的核心文档:https://docs.typo3.org/typo3cms/CodingGuidelinesReference/latest/PhpArchitecture/ModelingCrossCuttingConcerns/StaticMethods/Index.html
【讨论】:
您可以将您的函数写入 UtilityClass 或 ServiceClass,或者(我认为更好的方式)您可以同时使用两者。按任务对功能进行分组,例如StringUtility、FileUtility 等。你的ServiceClass 使用比需要的UtilityFunction。
所以你的功能很少,你可以一次又一次地使用它。例如,看看其他很棒的扩展,如 tx_news、femanager 等。
【讨论】: