> Is it just me or has this list gone very quiet?
Well, I have a question if everyone's twiddling their thumbs at the moment?
Here goes...
I have a cfc stored in the session scope for a shopping cart app. It stores
various things, but I'll focus on the address bit. The user cfc has a
getAddress() function which returns a struct of the punter's address.
I have another cfc stored in the application scope. It should do all the
checkout stuff for the cart(*). One of its functions is (will be...)
doCheckout() which expects a struct of all the user's info.
Within this checkout.cfc, there is a private function,
insertAddressIntoDatabase(). It takes a struct and shoves it in the
database, returning the id of the row inserted. It should be called from
within doCheckout(), but never on its own.
Now, I'm a little fuzzy on how these cfcs talk to each other. Obviously I
need to pass the user cfc into the checkout cfc, but I'm not sure how... If
I pass in the user struct entirely, am I right in accessing it within the
arguments of the doCheckout function?
Vague code below. Does that look alright to everyone?
Many thanks for any input.
Geoff
(*) I wondered if the user.cfc should have the ability to check itself out
(see PetMarket), but that didn't seem right to me...
<cfcomponent displayName="Checkout" output="false" hint="Checkout CFC">
<cffunction name="doChecout" access="public" returntype="struct">
<cfargument name="user" type="struct" required="yes"/>
<cfset var shippingid=""/>
<cfset shippingid=insertAddressIntoDatabase(user.getAddress())>
<!--- Do various other things, including billing the card --->
<cfreturn SomeStructWithOrderDetails />
</cffunction>
<cffunction name="insertAddressIntoDatabase" access="private"
returntype="numeric">
<cfargument name="address" type="struct" required="yes"/>
<cfset var shippingid="">
<!--- Stick address in db, return id --->
<cfreturn shippingid/>
</cfcomponent>
<cfcomponent displayName="User" output="false" hint="User CFC, probably
stored in session scope">
<cffunction name="init" access="public" returntype="user"
hint="Constructor for user CFC">
<cfset variables.address=structnew()/>
<cfset variables.address.firstname=""/>
</cffunction>
<cffunction name="getAddress" access="public" returntype="struct">
<cfreturn variables.address/>
</cffunction>
</cfcomponent>
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
You are subscribed to cfcdev. To unsubscribe, please follow the instructions at
http://www.cfczone.org/listserv.cfm
CFCDev is supported by:
Katapult Media, Inc.
We are cool code geeks looking for fun projects to rock!
www.katapultmedia.com
An archive of the CFCDev list is available at
www.mail-archive.com/[email protected]