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.