CFC Best Practices, Tips, and Tricks - PowerPoint PPT Presentation

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

play fullscreen
1 / 13
CFC Best Practices, Tips, and Tricks
162 Views
Download Presentation
constance
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/