Re: Getting parent constructor called in a class chain - PHP 4.3.4 C extension
| From: | Erkka Marjakangas | Date: | Wed, 03 Mar 2004 10:38:07 +0000 |
| Subject: | Re: Getting parent constructor called in a class chain - PHP 4.3.4 C extension | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-8338@lists.php.net to get a copy of this message | ||
Yiihaa, it does work! Thanks a million!
----- Original Message -----
From: "Derick Rethans" <derick@php.net>
To: "Erkka Marjakangas" <ede@iki.fi>
Cc: <internals@lists.php.net>
Sent: Wednesday, March 03, 2004 11:58 AM
Subject: Re: [PHP-DEV] Getting parent constructor called in a class chain - PHP 4.3.4 C extension
> On Wed, 3 Mar 2004, Erkka Marjakangas wrote:
>
> > Hello!
> >
> > Not sure if this is the most proper place for discussing PHP
> > extensions, so blame me if I'm in a totally wrong place here ;-)
>
> It is :)
>
> > How do I tell PHP (4.3.4) / Zend engine to automatically call parent
> > constructors when creating a class that has parents in an extension?
> >
> > Or if it cannot be done automatically, what would be the way to call
> > the parent constructor?
>
> It is not done automatically
>
> > ZEND_FUNCTION(stringitem)
> > {
> > //TODO: should I call item ctor manually here, if so, how? Can't it be
> > automated?
> > add_property_string(this_ptr, "stringitem_str",
> > "ThisIsStringItemClass",1);
> > }
> > ...
> > ---Code---
> >
> > I can always isolate the constructors to their own functions and call
> > them manually in appropriate places to get properties of the parent
> > class(es) initialized, but it sounds like a kludge and I' sure there's
> > an automated way to do this since methods get inherited....
>
> There is no automated way for that, but what you can do is adding:
>
> zif_item(INTERNAL_FUNCTION_PARAM_PASSTHRU);
>
> at the locattion of "TODO". This *might* work.
> (Please also note that it is always smart to prefix your
> functions/classes with the extension name to prevent naming clashes)..
>
> Derick
>