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.