Skip to main content
Participant
July 24, 2008
Question

Using external utility functions inside a CFC

  • July 24, 2008
  • 3 replies
  • 328 views
I tend to write my code in cfscript whenever possible, but because not all tags are available within cfscript, I often have to write wrapper functions for them. I also have a bunch of miscellaneous, non-application-specific utility functions that I use quite a bit.

My ideal CFC is one that is completely stand-alone. Totally encapsulated. Something I could post here that would work for any other ColdFusion programmer without any fuss. However, if I want to use my wrapper functions and/or utility functions inside them, I lose the "stand-alone-ness" of it, because all of a sudden it is dependent on these external utility functions -- functions which, in my opinion, should be part of ColdFusion itself. I could define them in the cfc itself, but I don't want ten to twenty different versions of the same functions floating around in my application. Another option: I could require that they be passed in during the init() method, but there you go again -- it's not standalone.

So, my question is, how important is encapsulation to you? Do you think the benefit is so great that you would even avoid using simple wrapper functions and utility functions inside cfc's, or are you willing to strap on a few "dependencies" in order to write cleaner, easier code inside them?
This topic has been closed for replies.

3 replies

shorlbeckAuthor
Participant
July 25, 2008
Thanks for the feedback. Yes, it does help to see that encapsulation isn't always the highest priority. Or perhaps I need to expand my definition of "encapsulation" to include *groups* of CFC's, which, together, are "stand-alone."
Inspiring
July 25, 2008
I think it's very important to not let dogmatic adherence to rules get in
the way of common sense and productivity.

Plus it's completely normal for programming components to have dependencies
on other programming components.

How many Java classes - for example - do you know that *don't* start with a
few import statements? Also how often are Java solutions distributed as a
single class, as opposed to a jar file? Why do you think that is? Because
the jar file gathers together a bunch of files all of which depend on one
another to varying degrees.

Why would you expect a CF-based solution to be any different?

--
Adam
Inspiring
July 25, 2008
Encapsulation is not important to me at all. I see two uses for cfc's. One is to make code re-useable. The other is make cf code available to a non-cf app.

I have no qualms whatsoever about invoking a function from cfc_number_2 in cfc_number_1.

I also have no qualms about using cfc's as function libraries. To be frank, that's what most of mine are.