What Happens When I Cache Application.cfc Within The APPLICATION Scope?
Pretty much nothing exciting :) But I wanted to try it to see if stuff would blow up. If nothing else, it proves that a new Application.cfc instance is created for every single page request. This test is super, ultra simple. Here is my Application.cfc ColdFusion component:
<cfcomponent>
<cfset THIS.Name = "App Cache Test" />
<cfset THIS.ApplicationTimeout = CreateTimeSpan( 0, 0, 5, 0 ) />
<!---
Here, I am creating a unique ID for this Application.cfc
just to help see if one instance is the same as another.
--->
<cfset THIS.ID = CreateUUID() />
<cffunction
name="OnRequestStart"
access="public"
returntype="boolean"
output="false">
<!---
Param an array in the APPLICATION scope to hold all
of our App.cfc instances.
--->
<cfparam
name="APPLICATION.Apps"
type="array"
default="#ArrayNew( 1 )#"
/>
<!---
Append THIS application.cfc instance to our
cached array.
--->
<cfset ArrayAppend(
APPLICATION.Apps,
THIS
) />
<cfreturn true />
</cffunction>
</cfcomponent>
Then, my index.cfm page merely CFDumps out the APPLICATION scope:
<!---
Dump out the APPLICATION scope. Put in a TOP 10 to
make sure nothing goes crazy.
--->
<cfdump
var="#APPLICATION#"
top="10"
/>
After running that page a few times, here is what I get:
As you can see, nothing exciting going on here. At least it didn't go kabooom!
Want to use code from this post? Check out the license.
Reader Comments
thank you....