Download
cfc best practices tips and tricks n.
Skip this Video
Loading SlideShow in 5 Seconds..
CFC Best Practices, Tips, and Tricks PowerPoint Presentation
Download Presentation
CFC Best Practices, Tips, and Tricks

CFC Best Practices, Tips, and Tricks

209 Views Download Presentation
Download Presentation

CFC Best Practices, Tips, and Tricks

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. CFC Best Practices, Tips, and Tricks Raymond Camden jedimaster@mindseye.com

  2. Agenda • Basic (but real!) Examples • Best Practices (Suggestions) • Tips and Tricks • Resources

  3. Examples • www.cflib.org • CFCs serve as DB abstraction • ResourceBundle CFC • Localization Utility • SimpleCMS • Simple CMS based on CFCs

  4. Best Practices • Control white space generated by CFC <cfcomponent displayName="Example" output="false"> <cffunction name="test" returnType="string" access="public" output="false"> <cfreturn "This is a boring function."> </cffunction> </cfcomponent>

  5. Best Practices • Supply Optional Attributes <cfcomponent displayName="Example2" output="false"> <cffunction name="test" returnType="string" access="public" output="false" hint="This function does blah using Foo's logic."> <cfargument name="argone" type="string" required="true"> <cfargument name="argtwo" type="numeric" required="false" default="0"> <cfreturn arguments.argone & " with the number " & arguments.argtwo> </cffunction> </cfcomponent>

  6. Best Practices • Use the VAR scope! <cfcomponent displayName="Example3" output="false"> <cffunction name="test" returnType="string" access="public" output="false"> <cfargument name="argone" type="string" required="true"> <cfset var i = 0> <cfloop index="i" from=1 to=10> ..... </cfloop> </cffunction> </cfcomponent>

  7. Understand Data Scopes • Variables • This • Arguments • Function Local

  8. Cache CFC Instances • CFC creation can be slow. • Use createObject/cfobject to create an instance. • <cfinvoke> (typically) works with new instances.

  9. Pseudo-Constructor • Any code not inside <cffunction>. • Useful to initialize variables. • BlueDragon has <cfconstructor>

  10. Dealing with Application Variables • Application.cfm and when it's run: • Flash Remoting/WS calls • Same folder • Don't rely on it! • Application CFC

  11. Inheritance/Super • Use for Is-A, not Has-A • In other words, inheritance is used when a CFC defines as "is a" relationship with it's parent. It should not be used for simple code re-use. • Super allows for a child method to extend a parent method.

  12. Pass by Ref/by Value • Values passed to CFC methods follow the same rules as values passed to UDFs. • The following are passed by reference: • Structures • Queries • Other "comlpex" objects (including CFCs)

  13. Resources • www.cfczone.org • cfcdev mailing list • Top Ten Tips article by Rob Brooks-Bilson • http://www.oreillynet.com/pub/a/javascript/2003/09/24/coldfusion_tips.html?page=1 • CFC Best Practices by Nathan Dintenfass • http://www.dintenfass.com/cfcbestpractices/