Re: SOAP Question re: Class Mapping & Constructors
| From: | Andrew Yochum | Date: | Tue, 13 Dec 2005 21:33:38 +0000 |
| Subject: | Re: SOAP Question re: Class Mapping & Constructors | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-21209@lists.php.net to get a copy of this message | ||
Hi Matt & Dmitry,
Calling the magic __wakeup() func might be appropriate in this case,
since SOAP envelope deserialization is a lot like regular
deserialization. It is a lot less confusing than calling the
constructor w/ no args and seems quite appropriate given the context.
Andrew
On Tue, Dec 13, 2005 at 02:22:25PM -0500, Matt Friedman wrote:
> Hi Dmitry,
>
> It is understandable that you don't know what the arguments might be.
> But I would rather have the constructor called with no arguments, or
> with just the std object
book passed to the constructor instead
> of
> no constructor at all.
>
> Is it possible?
>
> Thanks,
> Matt.
>
>
>
> On 12/13/05, Dmitry Stogov <dmitry@zend.com> wrote:
> > Hi Matt,
> >
> > During SOAP envelope deserialization, objects are created indirectly.
> > So constructors are not called (constructor may need arguments).
> >
> > This is not a bug.
> >
> > Thanks. Dmitry.
> >
> > > -----Original Message-----
> > > From: Matt Friedman [mailto:matt.friedman@gmail.com]
> > > Sent: Tuesday, December 13, 2005 9:49 PM
> > > To: internals@lists.php.net
> > > Subject: [PHP-DEV] SOAP Question re: Class Mapping & Constructors
> > >
> > >
> > > Hi,
> > >
> > > We are using the built-in SOAP extension.
> > >
> > > From the docs:
> > > $server = new SoapClient("books.wsdl", array('classmap' =>
> > > array('book' => "MyBook")));
> > >
> > > Soap server will return a complex data type 'book'. The data
> > > fields for book will be mapped to the php class' data fields
> > > in MyBook. It seems that the constructor for MyBook is never
> > > called (according to our tests). The data fields are mapped
> > > somehow internally.
> > >
> > > If I want MyBook to be much more than just a data container,
> > > then I can foresee that I will often want/need a constructor
> > > but __construct is not called.
> > >
> > > Could this be considered a bug? Any thoughts?
> > >
> > > --
> > > -- Matt Friedman
> > >
> > > --
> > > PHP Internals - PHP Runtime Development Mailing List
> > > To unsubscribe, visit: http://www.php.net/unsub.php
> > >
> > >
> >
> > --
> > PHP Internals - PHP Runtime Development Mailing List
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
> >
>
>
> --
> -- Matt Friedman
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
Andrew Yochum
Plexpod
andrew@plexpod.com
718-360-0879