Yes, but why are you creating a copy in the first place? Why do you think you need a copy and not a reference?
On 10/29/07, Ryan Heldt <[EMAIL PROTECTED]> wrote: > > Thanks everyone for responding. Unfortunately, the method suggested by > Rich > below seemed to create a pointer rather than a separate instance of the > object, as I had hoped. However, after discussing this with a co-worker, > we > seem to have cooked-up a viable solution. > > There were two objects I wanted to "copy" into the request scope. So, in > each of those objects, we added a copy() constructor that took the initial > object, then copied all of the properties over, for instance: > > <cffunction name="copy" access="public" output="false" > returntype="AuthenticatedUser"> > <cfargument name="object" type="AuthenticatedUser" required="true" > /> > <cfscript> > _userID = object.getUserID(); > _username = object.getUsername(); > _firstName = object.getFirstName(); > _lastName = object.getLastName(); > _email = object.getEmail(); > _permissions = object.getPermissions(); > _isAuthenticated = object.getIsAuthenticated(); > </cfscript> > <cfreturn this /> > </cffunction> > > Then, in Application.cfc, onRequestStart(): > > <!--- Copy AuthenticatedUser object over to request scope ---> > <cflock timeout="10" throwontimeout="false" type="readonly" > scope="session"> > <cfset request.myAuthenticatedUser = > createObject("component","AuthenticatedUser").copy( > session.myAuthenticatedUs > er) /> > </cflock> > > Thanks! > Ryan > > > -----Original Message----- > > From: Rich [mailto:[EMAIL PROTECTED] > > Sent: Monday, October 29, 2007 12:40 PM > > To: CF-Talk > > Subject: RE: Copying a CFC Persisted in Session Scope > > > > > I realize this topic may have been covered on this list a > > while back, > > > but I'm having problems locating a good answer, so here goes. > > > Typically in our administrative web sites, on a request, we > > copy over > > > our session variables to the request scope so we can have > > read-access > > > to the information without having to place locks all over the place. > > > > I would suggest that you create a Session Facade and then > > have all your objects reference the façade. It is generally > > a bad idea to have an object reference an external scope > > (session, request, etc.), and this technique hides the > > implementation from your business objects. > > > > Assuming you wanted to return an 'admin' object, your objects > > would use a > > sessionFaçade.getAdminObject() and the function within the > > façade would look like the following (excluding locks, etc. > > for the sake of simplicity): > > > > function getAdminObject() { > > Return session.adminObject > > } > > > > HTH, > > Rich Kroll > > > > > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| ColdFusion is delivering applications solutions at at top companies around the world in government. Find out how and where now http://www.adobe.com/cfusion/showcase/index.cfm?event=finder&productID=1522&loc=en_us Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:292265 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4