Внедрить зависимость в application.cfc FW1 - PullRequest
0 голосов
/ 25 февраля 2019

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

enter image description here

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

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

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

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

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

0 голосов
/ 25 февраля 2019

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

...