This is KEY! Event handlers in ColdBox are cached by default so no unnecessary object creations occur. Therefore, your code within the event handler functions MUST be thread safe and var scoped. This is essential and key for ANY framework or ANY ColdFusion Component declaration, ALWAYS ALWAYS var scope. I cannot stress the importance of having to var scope your ColdFusion component method calls. I see this time and time again and we need to educated ourselves about it and also create a habit of ALWAYS var scoping our variables within function declarations. What do you think?
Blog
This is KEY! Event handlers in ColdBox are cached by default so no unnecessary object creations occur. Therefore, your code within the event handler functions MUST be thread safe and var scoped. This is essential and key for ANY framework or ANY ColdFusion Component declaration, ALWAYS ALWAYS var scope. I cannot stress the importance of having to var scope your ColdFusion component method calls. I see this time and time again and we need to educated ourselves about it and also create a habit of ALWAYS var scoping our variables within function declarations. What do you think?
Recent Entries
QR Codes Come to BoxLang Images
The bx-image module can now generate and read QR codes. Two new functions, a string member function, and two new bx:image actions. No extra dependencies for you to manage.
CBSecurity 3.9: 12 Security Middleware for ColdBox, Declared Right on the Route
Ortus Solutions today announces CBSecurity 3.9, a major step forward for securing ColdBox applications. This release adds 12 ready-made security middleware that you attach directly to routes and route groups, with no firewall rules required.
ACF2021 extended support ends on November 10. Is Your Application Ready?
Adobe ColdFusion 2021 reaches the end of extended support on November 10, 2026. If your application still runs on this release, the time to decide what comes next is now.
Adobe ended core support for ColdFusion 2021 on November 10, 2025. The current extended support period is best effort and does not include security patches or hotfixes. When it ends on November 10 2026, organizations will no longer have that support option from Adobe for ColdFusion 2021.
Add Your Comment
(3)
Sep 24, 2010 17:49:38 UTC
by Adrian J. Moreno
A few links with more information on var scoping:
My blog:
http://www.iknowkungfoo.com/blog/index.cfm/2007/8/22/Object-Oriented-Coldfusion--4--The-var-scope
Dave Shuck:
http://daveshuck.instantspot.com/blog/2006/11/28/Thread-safety-example--Var-scope-your-loop-index-in-ColdFusion-CFCs
Tyson Vanek:
http://www.webapper.net/index.cfm/2007/2/9/The-REAL-reason-you-need-to-varscope-your-local-CFC-function-variables
Sep 30, 2010 10:28:54 UTC
by Allen
Not to be trite but the var keyword is a keyword, not a scope. Most of know that but I'd hate to see a newbie get confused.
Do you have some example code for a handler or controller that would help illustrate this?
And is there any reason if we're running CF9 why we shouldn't use the local scope in these situations?
TIA!
Sep 30, 2010 10:35:10 UTC
by Luis Majano
@Allen,
In cf9 you don't have to var scope if you use the local scope as that puts the variables in the local function scope. To me that is a matter of preference, like what color you like? They both achieve the same results.
Some example handler code of NOT var scoping:
function doThis(event){
rc = event.getCollection();
rc.data = service.getData();
}