<cfcomponent output="false" hint="Executes application-level event handlers."> <!--- Set up the application. ---> <cfset THIS.Name = Config().Name /> <cfset THIS.ApplicationTimeout = Config().ApplicationTimeout /> <cfset THIS.SessionTimeout = Config().SessionTimeout /> <!--- Set up page settings. ---> <cfsetting showdebugoutput="#Config().ShowDebugOutput#" requesttimeout="#Config().RequestTimeout#" /> <cffunction name="Config" access="public" returntype="struct" output="false" hint="Returns the Application.cfc configuration settings struct based on the execution environment (production, staging, development, etc)."> <!--- Check to see if the app config structure exists within this ColdFusion component yet; if it doesn't we have to created it. ---> <cfif NOT StructKeyExists( THIS, "$Config" )> <!--- Create the empty $AppCongif struct. I am starting it off with "$" to minimize the chances of it conflicting with an existing variable (or soon to be existing variabel). ---> <cfset THIS[ "$Config" ] = StructNew() /> <!--- The applicaiton configuration object does not yet exist. Let's create it based on the server name. ---> <cfif REFind( "(?i)swoop", CGI.server_name )> <!--- Set development environment. ---> <cfset THIS[ "$Config" ].IsLive = false /> <cfset THIS[ "$Config" ].Name = "BenNadel-DEV" /> <cfset THIS[ "$Config" ].ApplicationTimeout = CreateTimeSpan( 0, 0, 1, 0 ) /> <cfset THIS[ "$Config" ].SessionTimeout = CreateTimeSpan( 0, 0, 1, 0 ) /> <!--- Page settings. ---> <cfset THIS[ "$Config" ].ShowDebugOutput = true /> <cfset THIS[ "$Config" ].RequestTimeout = 20 /> <cfelse> <!--- Set production environment. ---> <cfset THIS[ "$Config" ].IsLive = true /> <cfset THIS[ "$Config" ].Name = "BenNadel-PROD" /> <cfset THIS[ "$Config" ].ApplicationTimeout = CreateTimeSpan( 0, 0, 10, 0 ) /> <cfset THIS[ "$Config" ].SessionTimeout = CreateTimeSpan( 0, 0, 10, 0 ) /> <!--- Page settings. ---> <cfset THIS[ "$Config" ].ShowDebugOutput = false /> <cfset THIS[ "$Config" ].RequestTimeout = 20 /> </cfif> </cfif> <!--- ASSERT: Whether we are calling this function for the first time of the Nth time, we now have the $Config object properly stored in the THIS scope of the Application.cfc ---> <!--- Return the config object. ---> <cfreturn THIS[ "$Config" ] /> </cffunction> </cfcomponent>