Каков наилучший способ включения UDF/CFC в контроллер ColdFusion Model-Glue?
У меня есть несколько общих UDF и CFC, которые я хотел бы сделать доступными для всех моих контроллеров. Я использую Model-Glue 3. Я думал о нескольких способах сделать это:
- Создайте базовый контроллер, который имеет
<cfinclude>
с UDF и создает экземпляры CFC. Все остальные контроллеры наследуются от этого контроллера. - Конвертировать все UDF в CFC и использовать
ColdSpring.xml
превратить ХФУ в бобы. Затем сделайте его доступным для контроллера с помощьюbeans
приписыватьModelGlue.xml
, - Сохраните UDF и CFC в папке помощников и получите к ним доступ, используя область помощников. Тем не менее, похоже, что он предназначен для использования представлением, а не контроллером.
- Создать глобальный
onRequestStart
который будет создавать экземпляры ХФУ и хранить их вevent
объект. Затем контроллеры получат доступ к CFC, вытащив их прямо изevent
объект.
У меня вопрос: какой метод используется большинством людей, чтобы сделать общий набор UDF и CFC доступным для всех контроллеров?
1 ответ
Я бы использовал вариант 2 выше.
Для тех объектов, которые нуждаются в вспомогательных методах, я бы использовал DI для добавления в них вспомогательных объектов. Это будет более гибким в будущем.
Мне не нравится идея базового объекта со всеми помощниками. Вот почему:
Что если позже вы захотите разбить помощников в нескольких ХФУ? Ты не можешь В зависимости от того, сколько у вас есть справочных функций и сколько они могут вырасти, это может сделать ваши объекты безобразными. Что если у вас когда-нибудь будет 50 вспомогательных функций? Вы действительно хотите, чтобы у ваших контроллеров было 50 дополнительных методов, которые действительно не имеют ничего общего с их основной задачей.
Разделение проблем. Контроллеры должны беспокоиться о том, чтобы быть контроллерами. Они не должны быть загружены дополнительными функциями, чтобы они знали, как форматировать строки. Это должно быть обработано StringHelper или чем-то еще.
Два других варианта звучат не очень хорошо. Что такое сфера помощи?