Re: New destructors implementation

From: Date: Thu, 05 Feb 2004 00:00:05 +0000
Subject: Re: New destructors implementation
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-7599@lists.php.net to get a copy of this message
Hello Zeev, Thursday, February 5, 2004, 12:24:47 AM, you wrote: > At 23:45 04/02/2004, Andrei Zmievski wrote: >>On Wed, 04 Feb 2004, Andi Gutmans wrote: >> > 3. The APIs have changed to allow for this new mechanism. Instead of the >> > previous dtor callback, which was supposed to both call the destructor and >> > free the object's storage, there are now two separate callbacks - dtor >> > (call the destructor) and free_storage (guess). Generally, for classes >> > which implement PHP-style objects, you should implement both of these >> > callbacks (though you can probably use the standard dtor callback). For >> > overloaded classes such as SimpleXML, COM, etc. - you will most likely >> only >> > have to implement the free_storage callback, as there's no destructor >> > per-se. We already went over all the overloaded classes in the php-src >> CVS >> > and moved most of the dtor callbacks to free_storage. Note that the >> > interface is slightly different between these two callbacks - free_storage >> > doesn't receive the object handle. >> >>Is there an automatic call to __destruct() method then? Because I'd like >>my PHP-GTK objects to have that method called upon destruction and I >>don't feel like reimplementing the mechanism for doing that. > If it's a PHP-style object, then you can use zend_objects_destroy_object as > your destructor callback (when calling zend_objects_store_put()), in which > case __destruct() will be called. That's how the regular PHP objects do it. So my guess is that for most internal objects we need to do so? -- Best regards, Marcus mailto:helly@php.net

« previous php.internals (#7599) next »