В соответствии с заголовком - Может ли компонент отдыха в ColdFusion получить доступ к области Application
? Мое начальное тестирование, похоже, указывает на то, что оно не может, однако, это, безусловно, может быть в Railo/Lucee - так что мне интересно, возможно, я что-то не так?Может ли компонент доступа получить доступ к области приложения?
Конечно, можно утверждать, что никакой CFC не должен обращаться к области Application
, поскольку он разрушает инкапсуляцию, но я думаю, что компонент REST является одним из немногих примеров, которые это желательно.
То, что кажется странным, что если я попытаюсь возвращать Application
области видимости, не существует, я получаю сообщение я бы ожидать:
Element FOO is undefined in APPLICATION.
В то время как, если я пытаюсь возвращать Application
переменной, область видимости ли существует, я получаю следующее - предполагая, что Application
сферы недоступна в этом контексте:
Variable APPLICATION is undefined.
на данный момент, речь идет о фа irly moot - реализация REST CF настолько неудобна, что я думаю, что собираюсь переехать к Taffy, но работы Railo/Lucee так хорошо сравниваются. Я просто не могу упустить возможность, что я что-то испортил.
Вот некоторые тестовый код, для тех, кто может быть заинтересован:
<cfcomponent
output = "false"
rest = "true"
restpath = "/hello/"
>
<cffunction
name = "world"
returntype = "string"
httpmethod = "GET"
access = "remote"
>
<cfreturn Application.Foo />
</cffunction>
</cfcomponent>
Я думаю, что сообщение об ошибке 'Element FOO undefined in APPLICATION' является красной селедкой. Если вы вызываете неопределенную переменную, такую как 'foo.bar', сообщение об ошибке будет« Элемент BAR не определен в FOO'. Как выглядит ваш Application.cfc и является ли cfc частью этого приложения (в пути)? –
Достаточно честный ... Путь может быть проблемой, он находится вне корня сети со всеми моими другими CFC и имеет сопоставление с ним. У меня нет доступа к репо прямо сейчас, но похоже, что это может быть проблемой. Я не понимал, что это должно быть под корнем в сети, но теперь я думаю об этом. Я предполагаю, как еще удаленный экземпляр CFC знает, к какому приложению это принадлежит ?! –
Действительно, в этом была проблема. Отлично работает, если я помещаю его под веб-корнем. Я бы подумал, так как я настраиваю папку REST в Application.cfc, он сможет связать ее с этим приложением или хотя бы назвать это в этом контексте, но, увы, похоже, что нет. Спасибо за предложение! –