I'm experimenting with my first CFC.  I've written these simple example
files.

*** test.cfc ***
<cfcomponent displayname="My First CFC" hint="A trial CFC">
        <cfset this.X = 10>
        <cfset this.Y = 15>
        
        <cfset A = 5>
        <cfset B = 3>

        <cffunction name="multiplyXY" access="public" returntype="numeric">
                <cfset myResult = this.X * this.Y>
                <cfreturn myResult>
        </cffunction>

        <cffunction name="multiplyAB" access="public" returntype="numeric">
                <cfset myResult = A * B>
                <cfreturn myResult>
        </cffunction>
</cfcomponent>
*** end ***

*** test.cfm ***
<cfobject name="testObj" component="test">
<cfdump var="#testObj#">

<cfset this.X = 12>
<cfset this.Y = 24>

<cfset A = 21>
<cfset B = 32>

<cfinvoke component="#testObj#" method="multiplyXY" returnvariable="joe"/>
<cfinvoke component="#testObj#" method="multiplyAB" returnvariable="sam"/>

<cfinvoke component="test" method="multiplyXY" returnvariable="joe2"/>
<cfinvoke component="test" method="multiplyAB" returnvariable="sam2"/>

<cfoutput>
        #testObj.X# * #testObj.Y# = #joe#<br>
        #testObj.X# * #testObj.Y# = #testObj.multiplyXY()#<br>
        #this.X# * #this.Y# = #this.X * this.Y#<br>
        <br>
        #sam#<br>
        #testObj.multiplyAB()#<br>
        #A * B#<br>
        <br>
        #joe2#<br>
        #sam2#<br>
</cfoutput>
*** end ***

What I would like to discuss is the performance differences between the
various component methods I've tested here.  

In the CFC code, the X and Y variables are in the "this" scope and the A and
B variables are in the default "variable" scope.  What are the differences
between these practices other then the X and Y are available as properties
of an object (obj.X and obj.Y).

Then in the CFM code I accessed the component a couple different ways.  I
first used a <cfobject> tag to "instantiate" an instance of the component as
a object variable "testObj".  I then accessed the methods of that instance
with a <cfinvoke> on testObj and directly [testObj.method()].  Finally I
just accessed the methods of the component directly with <cfinvoke>. 

I would like to discuss the pros and cons of these different practices and
when one might be better then another.  Also, I remember reading about some
kind of scope bug involving CFC's, but since I wasn't really familiar with
CFC's at the time, I really didn't understand what I was reading.  What
would this be about?

Thank You

--------------
Ian Skinner
Web Programmer
BloodSource
Sacramento, CA

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq

Your ad could be here. Monies from ads go to support these lists and provide more 
resources for the community. 
http://www.fusionauthority.com/ads.cfm

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to