2016-09-15 3 views
0

В настоящее время я работаю над проектом, связанным с XML в текстовом файле. Я хочу извлечь содержимое, и я хочу добавить его в таблицу tt_content. Мой вопрос: где я должен поместить все функции (upload-file, extract-content, insert-tt_content)?Должен ли я записывать все свои функции в класс-утилит или в класс обслуживания?

ответ

6

Утилиты предназначены для статической функциональности, которая не зависит от состояния. Хорошими примерами являются PathUtility и StringUtility. Как только вы вызываете функцию, она выполняет задание и ничего больше.

Услуги, с другой стороны, могут обрабатывать состояние и, как правило, сложнее. У вас может быть какой-то 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

Просто замечание: есть новая глава в руководящих принципах кодирования в отношении PHP архитектуры во вселенной TYPO3: https://docs.typo3.org /typo3cms/CodingGuidelinesReference/latest/PhpArchitecture/Index.html Это очень хорошее чтение, и каждый разработчик TYPO3 должен это знать :) –