2016-09-15 50 views

回答

6

實用程序是針對不依賴於狀態的靜態功能。好例子是PathUtilityStringUtility。一旦你調用了一個函數,它就完成了工作,沒有更多。

另一方面,服務可以處理狀態,通常更復雜。你可能有某種DownloadService,它是用一個URL初始化的,然後獲取它並最終進行某種後期處理。一個核心的例子是MarkerBasedTemplateService

作爲一個經驗法則,一個實用程序不具有依賴性,也不會調用其他(非靜態)方法。服務更復雜,可能會調用其他服務。服務可能有內部狀態。

同時一定要檢查有關架構的指導方針的核心文件:https://docs.typo3.org/typo3cms/CodingGuidelinesReference/latest/PhpArchitecture/ModelingCrossCuttingConcerns/StaticMethods/Index.html

0

你可以將你的函數寫入一個UtilityClass或者一個ServiceClass或者(我認爲更好的方法)你同時使用。按任務分組您的功能,例如StringUtility,FileUtility等您的ServiceClass使用比所需的UtilityFunction。

所以你有一點功能,你可以反覆使用它。例如,看看其他很棒的擴展,如tx_news,femanager等。

+2

只是一句話:是在關於在TYPO3宇宙PHP架構的編碼指引了新的篇章:https://docs.typo3.org /typo3cms/CodingGuidelinesReference/latest/PhpArchitecture/Index.html 這是一個很好的閱讀,每個TYPO3開發者都應該知道它:) –

相關問題