Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:7596 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 6386 invoked by uid 1010); 4 Feb 2004 23:28:58 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 6299 invoked from network); 4 Feb 2004 23:28:57 -0000 Received: from unknown (HELO mail.zend.com) (192.117.235.230) by pb1.pair.com with SMTP; 4 Feb 2004 23:28:57 -0000 Received: (qmail 20455 invoked from network); 4 Feb 2004 23:28:55 -0000 Received: from localhost (HELO zeev-laptop.zend.com) (127.0.0.1) by localhost with SMTP; 4 Feb 2004 23:28:55 -0000 Reply-To: zeev@zend.com Message-ID: <5.1.0.14.2.20040205012223.07b18ff8@localhost> X-Sender: zeev@localhost X-Mailer: QUALCOMM Windows Eudora Version 5.1 Date: Thu, 05 Feb 2004 01:24:47 +0200 To: Andrei Zmievski Cc: internals@lists.php.net In-Reply-To: <20040204214517.GC40381@gravitonic.com> References: <5.1.0.14.2.20040204115844.04341008@localhost> <5.1.0.14.2.20040204115844.04341008@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed Subject: Re: [PHP-DEV] New destructors implementation From: zeev@zend.com (Zeev Suraski) 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. Zeev