From: Mike S. <ms...@md...> - 2009-07-31 02:32:48
|
>> I use it all the time. As Chuck said already, mostly to pass objects >> between layers that shouldn't know of each other. First and foremost >> the current user. > > Why are people using ERXThreadStorage to store the current user? I > store that in Session, or a superclass. Is that a bad idea? > > Sheesh. Just when I thought I was no longer a noob. You're fine -- Session is correct for spanning requests ... However, if are implementing, for instance, an audit log system, that would typically happen down in your models which do not have access to the Session (nor do you want them to). So the question becomes "how do i allow my models to access information that is pertinent to the current Thread without having to pass a User into every single method." ERXThreadStorage provides an answer to that. It's basically just a ThreadLocal NSMutableDictionary, but if you just used a ThreadLocal, it wouldn't get cleaned up at the end of the request, and so you'd leave it dirty when the worker thread is reused. ERXThreadStorage gets cleared out for you. ms |