2010-03-11 30 views
3

Dans la version ColdFusion 9, je suit dans Index.cfm:Application.cfc variables intégrées

<cfdump var="#Application#"> 

Mais la seule chose que je suis en train de revenir est un struct avec nomApplication - aucune autre variable comme rootPath, mappings ou customTagPath.

Voici ce que j'ai en Application.cfc:

<cfcomponent output="false"> 
<cfset this.name = left("App_#hash(getCurrentTemplatePath())#",64)> 
<cfset this.applicationTimeout = createTimeSpan(0,8,0,0)> 
<cfset this.sessionManagement=True> 
<cfset this.loginStorage = "session"> 
<cfset this.clientManagement = False> 
<cfset this.setClientCookies = True> 
<cfset this.setDomainCookies = False> 
<cfset this.scriptProtect = "all"> 
<cfset this.rootPath = getDirectoryFromPath(getCurrentTemplatePath())> 
<cfset this.mappings = this.rootPath> 
<cfset this.customTagPaths = "#this.rootPath#Components"> 

Répondre

5

C'est parce que ces paramètres ne sont pas dans le champ d'application. Vous confondez les paramètres d'application par rapport aux valeurs d'application. Si vous voulez qu'ils soient disponibles dans la portée Application, vous pouvez simplement les configurer dans votre onApplicationStart(). Vous pouvez également les voir via la portée This, bien sûr, de sorte que vous copiez les valeurs ici.

+0

À titre d'exemple, vous pouvez le faire: \t \t Dans ce cas, je viens de copier le chemin d'étiquette personnalisé. –

+0

Vous dites donc que 'this.foo' est une valeur d'application, et 'application.bar' est un paramètre d'application? Je suppose que les paramètres de l'application sont définis quelque part et les valeurs sont ce que vous voulez? –

+0

Non - this.foo serait un paramètre d'application, s'il était valide. Pour définir une application _variable_, vous utilisez la portée de l'application. Et oui, les paramètres de l'application sont répertoriés ici: http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-750b.html –