Re: New destructors implementation
| From: | Marcus Boerger | 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