views:

94

answers:

1

Is that a good practice to store the objects of the domain model in the PHP session ?

This would enable to avoid to query and reconstruct every PHP object to each PHP request.

Is there a size limit ?

+2  A: 

If you use OOP in PHP you probably want these objects to be reconstructed at every request for several reasons. All in all there wouldn't be much of a performance difference between storing, loading and deserializing the objects from the session, as you suggested, or just reconstructing them either.

It would depend much on the kind of the classes you use too, of course. Constructing a class usually isn't very problematic in terms of performance unless there is a real lot of stuff needed to do so (Database queries, etc.)

Additionally, doing so could make your code less understandable and/or maintainable too.

And yes, there is a size limited defined by the maximum memory usage of PHP set in the php.ini

So this question is not really answerable unless you exactly know what the classes you want to store in the session are, what they do and how they interact.

For example, if you were having a class which abstracts a logged-in user on your site, storing it's object in the PHP session would probably a good idea. In most other cases, however it wouldn't.

lamas
In my case that would be storing the whole model. For example, the user connects, he has access to his "project", this would mean storing his current working project in session. Note : the "project" is a set of about 100 PHP objects (this is why I don't want to reload it each time, this is about 50 queries)
Matthieu