[TYPO3-mvc] Extending Tx_Extbase_Domain_Model_FeUser with some kind of session object

Nathan Lenz typo3 at k9tfk.com
Wed Jan 13 14:48:08 CET 2010


Thomas "Thasmo" Deinhamer wrote:

> 
> I thought of creating a kind of 'session object' put
> onto the FeUser Model, which 'persists' all kind of
> data not into the database, but rather into the session.
> 
> After the user logs in, needed session data will be transformed
> and/or cloned/copied into a FeUser object or will be persisted.
> 
> I'm not sure if this is the best way. And if, I'm not quite sure
> how to create such kind of session user object which will store
> data in the session. (Maybe it's just a wrapper class over the
> FeUserAuth class of TYPO3, I'm not sure.)

I need to solve this same problem in the next few days.

I was thinking about creating a session enabled repository for the
object I need to persist into the session.  Then the controller would
just add,update,remove,etc... the object from the customized repository.
 The repository would handle the logic of deciding if it needs to
persist the object to the database or the session. However, I'm not sure
this makes sense.  It doesn't matter to me where the data is persisted,
just as long as it is available and I can access it.

Another idea would be to add an "owner" property to the basket object.
Then add a findByOwner() method to the basketRepository. I'm not sure if
it's possible to make "owner" either a session id or a FeUser object.

Your Basket controller would then do the logic:

Basket->showAction() {
    owner = '';
    if (feUser exists) {
        owner = feUser
    } else if (sessionId exists) {
	owner = sessionID
    } else {
	no basket! why don't you create one.
    }

    view->assign('basket',$repos->findByOwner(owner));
}

In this case, baskets would be always persisted to the database.

I'm not sure how I'm going to do it yet.
--Nathan


More information about the TYPO3-project-typo3v4mvc mailing list