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.
Zeev
-- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php