Я недавно установил ColdFusion 2018 на работе и был разочарован невозможностью правильно настроить прицел.Как обычно, я помещаю все свои .cfcs в папку / CFC, и ни один из них не будет работать без пустого файла application.cfm
в этой папке.Я пытался расширить приложение, в том числе приложение, приложение для расширения прокси, перемещение CFC в корневую папку вызывает только синтаксическую ошибку в JSON.Я прочитал каждую статью, которую смог найти за последние две недели, и я до сих пор не могу понять, почему сфера не сработает.Кажется, я могу установить переменные сеанса в папке / CFC, но они не доступны вне папки?Я не работал с CF в течение нескольких лет, но считаю себя сведущим, и на всю жизнь я не могу заставить это работать.вполне вероятно, что я скучаю по лесу из-за деревьев, но если кто-то захочет помочь, я буду благодарен.
экземпляр объекта;
application.SessionMgr = CreateObject(this.obj,'CFC.SessionMgr').init('session');
вызов прокси;
cfajaxproxy cfc="CFC/SessionMgr" jsclassname="SessionMgr";
возврат верен;
var s = new SessionMgr();
var setReport = s.setValue('ReportID', document.getElementById('cboReportKey').value);
alert(setReport);
однако даже ручная настройка session.ReportID = 7
не будет сохраняться вне папки.
здесьSessionMgr.init
это init
;
<cffunction name="init" access="public" returntype="SessionMgr" output="no" hint="I instantiate and return this object.">
<cfargument name="scope" type="string" required="yes">
<cfargument name="requestvar" type="string" default="SessionInfo">
<cfset var scopes = "application,Client,Session">
<cfif Not ListFindNoCase(scopes, arguments.scope)>
<cfthrow message="The scope argument for SessionMgr must be a valid scope (#scopes#)." type="MethodErr">
</cfif>
<cfset variables.scope = arguments.scope>
<cfset variables.requestvar = arguments.requestvar>
<cfset updateRequestVar()>
<cfreturn this>
</cffunction>
и setValue
fn
<cffunction name="setValue" access="remote" hint="I set the value of the given user-specific variable." returntype="string">
<cfargument name="variablename" type="string" required="yes">
<cfargument name="value" type="any" required="yes">
<cfset var val = arguments.value />
<cfset SetVariable("#arguments.variablename#", val) />
<cfset r = Evaluate(arguments.variablename) />
<cfreturn r />
</cffunction>