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....