Ryan, I store my UDFs in a CFC called UDFLib. The UDFLib then in turn composes its own sub libraries for easier code organization:
// Inside the INIT for UDFLib THIS.Array = CreateObject("component", "udflib.ArrayLib").Init(THIS); THIS.String = CreateObject("component", "udflib.StringLib").Init(THIS); THIS.System = CreateObject("component", "udflib.SystemLib").Init(THIS); THIS.Validation = CreateObject("component", "udflib.ValidationLib").Init(THIS); .... etc ... Then I store the parent library in the APPLICATION scope, but inside of a ServiceFactory. I am new to OOP and not sure if this is the best method, but then in my page pre-request area I have REQUEST.UDFLib = APPLICATION.ServiceFactory.GetUDFLib(); Then for anywhere on the page I can use calls like: REQUEST.UDFLib.Validation.IsEmail(FORM.user_email); Or REQUEST.UDFLib.String.ToMixedCase(qBlam.foo); Since the ServiceFactory is only created once and stored in APPLICATION and itself creates and stores one copy of UDFLib, then it gets cached while the application is running. Hope that helps at all. ....................... Ben Nadel Web Developer Nylon Technology 6 West 14th Street New York, NY 10011 212.691.1134 212.691.3477 fax www.nylontechnology.com "Vote for Pedro" -----Original Message----- From: Ryan Duckworth [mailto:[EMAIL PROTECTED] Sent: Tuesday, December 06, 2005 5:54 PM To: CF-Talk Subject: cfscript Common Functions and Best Practices Currently we have many functions that we use within cfscript. We are storing them in the request scope (see 2 examples below). Here is what I am don't like about this approach: Every page hit from every user is loading these common functions. I personally am not convinced that the request scope is the best place for these types of functions. I'm sure that many of you out there use functions of your own and from www.cflib.org. Is the server scope a better place for these? Should we only reload the functions if they are not already defined in the server scope? Thanks, Ryan ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Logware (www.logware.us): a new and convenient web-based time tracking application. Start tracking and documenting hours spent on a project or with a client with Logware today. Try it for free with a 15 day trial account. http://www.houseoffusion.com/banners/view.cfm?bannerid=67 Message: http://www.houseoffusion.com/lists.cfm/link=i:4:226399 Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4 Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4 Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4 Donations & Support: http://www.houseoffusion.com/tiny.cfm/54