Posted by Chung Leong on 10/23/66 11:50
Water Cooler v2 wrote:
> Thanks. That answers it. The onus of cleaning up and restoring
> "resources" (if the class uses any) is with us, and hence the
> implementation of these methods is a way given to us to do that before
> serialization and after deserialization.
>
> Thanks, again. :-)
You misunderstood I'm afraid. IDisposable.Dispose called, if I remember
my .NET correctly, when an object is garbage collected. __sleep() is
called when an object is serialized--usually at the end of the request
when PHP saves session data to a file. Its main purpose is to let PHP
know what properties within the object should be saved and what
shouldn't be (cached records for instance). The __wakeup() method is
the inverse of that--called when PHP restore data previously stored in
a file into an object.
__destruct() is the closest counter part to IDisposable.Dispose. You
typically don't need to manually free resources, since PHP will do it
for you at the end of a request.
[Back to original message]
|