Skip to main content
WolfShade
Legend
May 22, 2015 6:58 PM UTC
Question

Follow-up to previous question regarding CFC functions

Hello, all,

Earlier, I had asked a question about methods not being found in components.  haxtbh‌ pointed out something that I had skipped over (I was in a hurry) in the documentation - that 'private' methods (even within the same CFC) cannot be referred via the "this" scope.  I changed all of my methods to be called via mapping (ie, "components.componentName().methodName(args)") and most of them work!  However, I've got a few that aren't being found, even with using the mapping.  I really do not want these methods to be pushed into "public" access; I would much prefer that functions called from within the same CFC be private.  Any suggestions on what could be causing these to not be found?

V/r,

^_^

    This topic is closed to new replies. Start a new post to keep the conversation going.

    4 replies

    j_herden
    Participant
    May 26, 2015 5:35 AM UTC

    I understand that you want to call your private method inside of the CFC.

    I do this direktly by using the method name without any prefix:

              methodName()

    This works well for me.

    Translate
    WolfShade
    WolfShadeAuthor
    Legend
    May 28, 2015 4:03 PM UTC

    Hi, j.herden‌.

    You don't use "new" or anything to make sure that the current CFC is referenced?

    V/r,

    ^_^

    Translate
    BKBK
    Community Expert
    Community Expert
    May 24, 2015 3:28 PM UTC

    WolfShade wrote:

    ... I changed all of my methods to be called via mapping (ie, "components.componentName().methodName(args)") and most of them work!  However, I've got a few that aren't being found, even with using the mapping...

    Just use the obvious, standard way,

    <cfset obj = createobject("component", "dotted.path.to.componentName")>

    <cfset result = obj.methodName(args)>

    It leaves no room for ambiguity or error, and makes your code easier to understand and to maintain.

    Translate
    WolfShade
    WolfShadeAuthor
    Legend
    May 28, 2015 4:01 PM UTC

    Hi, BKBK‌!

    Thanks for replying.  I'm not sure if we're allowed to use CreateObject on the production servers.  And I'm trying to do this via CFSCRIPT as it appears a little cleaner than having all those CFSET tags.  Normally, I don't mind the HTML-style tags, but sometimes I just want less clutter. 

    V/r,

    ^_^

    Translate