Каков наилучший способ включения UDF/CFC в контроллер ColdFusion Model-Glue?

У меня есть несколько общих UDF и CFC, которые я хотел бы сделать доступными для всех моих контроллеров. Я использую Model-Glue 3. Я думал о нескольких способах сделать это:

  1. Создайте базовый контроллер, который имеет <cfinclude>с UDF и создает экземпляры CFC. Все остальные контроллеры наследуются от этого контроллера.
  2. Конвертировать все UDF в CFC и использовать ColdSpring.xml превратить ХФУ в бобы. Затем сделайте его доступным для контроллера с помощью beans приписывать ModelGlue.xml,
  3. Сохраните UDF и CFC в папке помощников и получите к ним доступ, используя область помощников. Тем не менее, похоже, что он предназначен для использования представлением, а не контроллером.
  4. Создать глобальный onRequestStart который будет создавать экземпляры ХФУ и хранить их в event объект. Затем контроллеры получат доступ к CFC, вытащив их прямо из event объект.

У меня вопрос: какой метод используется большинством людей, чтобы сделать общий набор UDF и CFC доступным для всех контроллеров?

1 ответ

Решение

Я бы использовал вариант 2 выше.

Для тех объектов, которые нуждаются в вспомогательных методах, я бы использовал DI для добавления в них вспомогательных объектов. Это будет более гибким в будущем.

Мне не нравится идея базового объекта со всеми помощниками. Вот почему:

  1. Что если позже вы захотите разбить помощников в нескольких ХФУ? Ты не можешь В зависимости от того, сколько у вас есть справочных функций и сколько они могут вырасти, это может сделать ваши объекты безобразными. Что если у вас когда-нибудь будет 50 вспомогательных функций? Вы действительно хотите, чтобы у ваших контроллеров было 50 дополнительных методов, которые действительно не имеют ничего общего с их основной задачей.

  2. Разделение проблем. Контроллеры должны беспокоиться о том, чтобы быть контроллерами. Они не должны быть загружены дополнительными функциями, чтобы они знали, как форматировать строки. Это должно быть обработано StringHelper или чем-то еще.

Два других варианта звучат не очень хорошо. Что такое сфера помощи?

Другие вопросы по тегам