【问题标题】:Should i write all my function in an utility-class or in a service-class?我应该在实用程序类还是服务类中编写所有函数?
【发布时间】:2016-09-15 18:29:49
【问题描述】:

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

【问题讨论】:

    标签: php typo3 extbase typo3-7.6.x


    【解决方案1】:

    实用程序用于不依赖于状态的静态功能。很好的例子是PathUtilityStringUtility。一旦你调用了一个函数,它就完成了工作,没有更多的事情。

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多