Blog

Importance of Var Scoping

Luis Majano September 24, 2010

Spread the word

Luis Majano

September 24, 2010

Spread the word


Share your thoughts

I can honestly say that there are always requests on the ColdBox lists or work that say, "Hey the application is taking my server memory, why does ColdBox do that!".  First of all, the ColdBox platform when placed in memory is less than 1kb of memory.  The rest that gets loaded into an application is because of your application code.  Second, the biggest culprit is the misuse or the not using of var scoped variables in event handlers or domain objects.

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?

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(); }

Recent Entries

Into the Box 2024 Last Early Bird Days!

Into the Box 2024 Last Early Bird Days!

Time is ticking, with less than 60 days remaining until the excitement of Into the Box 2024 unfolds! Don't let this golden opportunity slip away; our exclusive Early Bird Pricing is here for a limited time only, available until March 31st. Why wait? Secure your seat now and take advantage of this steal!

Maria Jose Herrera
Maria Jose Herrera
March 20, 2024
Ortus February Newsletter 2024

Ortus February Newsletter 2024

Welcome to Ortus Solutions’ monthly roundup, where we're thrilled to showcase cutting-edge advancements, product updates, and exciting events! Join us as we delve into the latest innovations shaping the future of technology.

Maria Jose Herrera
Maria Jose Herrera
March 06, 2024
Unveiling the Future of CFML Development - 3rd Round of Sessions

Unveiling the Future of CFML Development - 3rd Round of Sessions

Welcome back to our journey into the future of CFML development! As excitement continues to build for Into the Box 2024, we're thrilled to bring you the latest updates on what promises to be a transformative event. Continuing our blog post series, let's delve deeper into the third wave of session releases and discover the key surprises awaiting attendees. Learn More

Maria Jose Herrera
Maria Jose Herrera
March 01, 2024