Внедрить зависимость в application.cfc FW1

У меня есть тестовое приложение в FW1. В настоящее время у меня тестовый сервис и DAO. Например Model/services/test.cfc и Model/DAO/testDAO. Здесь я хочу установить одно из данных на application.cfc. Как я могу внедрить некоторые сервисы / DAO в приложение cfc. Я попытался сделать это, следуя Создание службы FW/1 в application.cfc. Но всегда сталкиваюсь с проблемой ниже.

Я хочу вызвать мои services / test.cfc или DAO / testDAO в моем файле cfc приложения. Дайте представление об этом и спасибо заранее!

2 ответа

Не видя ваш код, здесь есть несколько вещей, которые кажутся неправильными...

  1. Как сказал Бернхард, вам нужно объявить свойства непосредственно внутри блока компонента.
  2. Убедитесь, что в декларации вашего компонента вы включаете accessors="true" приписывать.
  3. Убедитесь, что вы ссылаетесь на свой сервис в зависимости от того, как настроен DI/1. Я вижу тебя у тебя test.cfc в services папка. Я предполагаю для вас, чтобы ссылаться на имущество как testServicesВы устанавливаете DI/1, чтобы отобразить это таким образом. В противном случае, по соглашению, он будет доступен как test или же testService, См.: Основные соглашения DI/1
  4. Я не смог найти источник, подтверждающий это, но я на 99% уверен, что вы не сможете получить доступ к своему сервису /DAO из setupApplication(), Это своего рода подход курица / яйцо.

Вы можете сделать этот вызов в одном из других методов жизненного цикла, таких как before() или же setupRequest(), Однако, в зависимости от вашего варианта использования, я бы переосмыслил ваш подход. Как Джеймс упоминает в своем ответе, это не обычный порядок действий. Если вам нужны данные, доступные по каждому запросу, или доступ к вспомогательному методу для регулярной обработки, я могу убедиться, что это работает для вас. Кроме того, если вам действительно не нужен этот сервис каждый раз, лучше выделить его только для контроллеров, которым он требуется в вашем приложении. В конечном счете, трудно сказать, не зная вашего намерения.

В FW/1 сервисы идут в каждый контроллер, а не в application.cfc, Вы должны переместить их туда.

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