phpsoaptoolkit-development Mailing List for PHP Soap (Page 5)
Status: Alpha
Brought to you by:
rodif_bl
You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
(21) |
May
(55) |
Jun
(6) |
Jul
(3) |
Aug
(1) |
Sep
(1) |
Oct
(3) |
Nov
(1) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2004 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
|
Nov
|
Dec
|
| 2006 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2008 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(2) |
Jul
(2) |
Aug
(1) |
Sep
(7) |
Oct
(7) |
Nov
(26) |
Dec
(32) |
| 2009 |
Jan
(9) |
Feb
(13) |
Mar
(14) |
Apr
(20) |
May
(39) |
Jun
(21) |
Jul
(26) |
Aug
(9) |
Sep
|
Oct
|
Nov
|
Dec
(8) |
| 2010 |
Jan
(10) |
Feb
(9) |
Mar
|
Apr
|
May
(3) |
Jun
(3) |
Jul
|
Aug
(2) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
|
From: Andrey H. <ahr...@ic...> - 2002-05-06 11:07:53
|
I found the problem. I think that you develop under windows and therefore there are \r\n's at the end of lines. The gcc of my mandrake does not complain about this but the gcc on my dragon linux(glibc2.1, i don't know atm what is the version of gcc) complains. I used "fromdos" and now everything is ok except that I'm donwloading libxml2 because I don't have it in the dragon linux. Andrey ----- Original Message ----- From: "brad lafountain" <rod...@ya...> To: "andrey" <ahr...@ic...> Sent: Saturday, May 04, 2002 11:42 PM Subject: Re: [PHP-SOAP-DEV] server segfault > Is this from the current cvs? > > // brad > --- andrey <ahr...@ic...> wrote: > > Ok. I downloaded and will test it tonight. However I've problem compiling > > libphp4.so with --enable-soap on my notebook(p166/16mb), which is dragon > > linux, glibc2.1, kernel 2.2.16 . gcc complains about 'stray "/" ' (not sure > > but looked like this). I use this computer as webserver and develop under > > win95 on my second machine. If you can compile libphp4.so against glibc2.1 > > (with built xmlrpc and soap within) I'll be very thankful. > > > > Will you explain shortly what was the problem? > > > > Andrey > > > > ----- Original Message ----- > > From: "brad lafountain" <rod...@ya...> > > To: <php...@li...> > > Sent: Saturday, May 04, 2002 7:38 PM > > Subject: [PHP-SOAP-DEV] server segfault > > > > > > > well i think i found the segfault.. i already commited it to cvs. > > > > > > You can d/l it and test it, i can't get to segfault anymore. > > > > > > - Brad > > > > > > __________________________________________________ > > > Do You Yahoo!? > > > Yahoo! Health - your guide to health and wellness > > > http://health.yahoo.com > > > > > > _______________________________________________________________ > > > > > > Have big pipes? SourceForge.net is looking for download mirrors. We supply > > > the hardware. You get the recognition. Email Us: ban...@so... > > > _______________________________________________ > > > Phpsoaptoolkit-development mailing list > > > Php...@li... > > > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development > > > > > > > > __________________________________________________ > Do You Yahoo!? > Yahoo! Health - your guide to health and wellness > http://health.yahoo.com > |
|
From: brad l. <rod...@ya...> - 2002-05-05 23:17:37
|
--- phpsurf <ph...@if...> wrote:
> I had a quick look to this, and I'm not sure I really understood what's in
> your mind in the difference between MAP_CLASS_INSTANCE and MAP_CLASS_CONVERT
> ! :)
>
> my only wish would be, for the class convert, that the convertion methods
> are not carried by the class itself but by another class which would just
> act as a transformer ... nut maybe that's what you meant !
Yeah... MAP_CLASS_CONVERT would act as a transformer.. and MAP_CLASS_INSTANCE
would act on its own class attributes.
The MAP_CLASS_CONVERT would just be a class wrapper around the to_xml* and
to_zval* functions.
and the MAP_CLASS_INSTANCE would have the to_xml* to_zval* defined as member
along with other normal methods. So you would acually need an instance of the
class.
- Brad -
>
> >
> > Basically the difference between MAP_CLASS_INSTANCE and
> > MAP_CLASS_CONVERT is
> > the instance treats the class as the type thats being converted and the
> > class_convert treats the class as just a "conversion" class.
> >
> > $soap_server->autoMap(true/false);
> >
> > This will tell the server to "automap" types. Meaning if
> > while serializing/deseralizing "someType" and there is an
> > existing php class called "someType" then it ill try and call
> > the corrisponding functions.
> >
> >
> > I was looking into the domxml extension. The extension will need
> > some changes
> > for my needs and some other issues that dont currently work right now.
> > like:
> >
> > $xml = new DomElement("asdf");
> >
> > doesn't really give you a new DomElement();
> > you have to do:
> >
> > $xml = new DomElement("asfd");
> > $real_xml = $xml->domelement("asdf");
> >
> > it looks like the constructors aren't working. I know how to fix
> > them its just
> > a matter of getting in the changes.
> >
> > the extension could still handle the
> > to_xml_before()
> > and
> > to_zval_after()
> > with out domxml changes or if domxml isn't even compiled in.
> >
> >
> > - Brad
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Health - your guide to health and wellness
> > http://health.yahoo.com
> >
> > _______________________________________________________________
> >
> > Have big pipes? SourceForge.net is looking for download mirrors. We supply
> > the hardware. You get the recognition. Email Us: ban...@so...
> > _______________________________________________
> > Phpsoaptoolkit-development mailing list
> > Php...@li...
> > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
>
______________________________________________________________________________
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: phpsurf <ph...@if...> - 2002-05-05 22:21:43
|
I had a quick look to this, and I'm not sure I really understood what's in
your mind in the difference between MAP_CLASS_INSTANCE and MAP_CLASS_CONVERT
! :)
my only wish would be, for the class convert, that the convertion methods
are not carried by the class itself but by another class which would just
act as a transformer ... nut maybe that's what you meant !
>
> Basically the difference between MAP_CLASS_INSTANCE and
> MAP_CLASS_CONVERT is
> the instance treats the class as the type thats being converted and the
> class_convert treats the class as just a "conversion" class.
>
> $soap_server->autoMap(true/false);
>
> This will tell the server to "automap" types. Meaning if
> while serializing/deseralizing "someType" and there is an
> existing php class called "someType" then it ill try and call
> the corrisponding functions.
>
>
> I was looking into the domxml extension. The extension will need
> some changes
> for my needs and some other issues that dont currently work right now.
> like:
>
> $xml = new DomElement("asdf");
>
> doesn't really give you a new DomElement();
> you have to do:
>
> $xml = new DomElement("asfd");
> $real_xml = $xml->domelement("asdf");
>
> it looks like the constructors aren't working. I know how to fix
> them its just
> a matter of getting in the changes.
>
> the extension could still handle the
> to_xml_before()
> and
> to_zval_after()
> with out domxml changes or if domxml isn't even compiled in.
>
>
> - Brad
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif
|
|
From: brad l. <rod...@ya...> - 2002-05-05 15:29:52
|
I have been doing some thining on how to do this...
And i think it would be pretty cool if i could incorperate domxml.
Standard function handing:
$soap_server->map("namespace:type", "to_xml", "to_zval");
function to_xml_before($zval)
{
return $modified_zval;
}
function to_xml($zval)
{
$xmldom_node = new DomElement($zval->name);
$xmldom_node->set_content($zval->value);
return $xmldom_node;
}
function to_xml_after($xmldom_node)
{
$xmldom_node->first_child()->unlink_node();
return $xmldom_node;
}
-------------
function to_zval_before($xmldom_node)
{
return $xmldom_node->first_child()->unlink_node();
}
function to_zval($xmldom_node)
{
$zval->data = $xmldom_node->first_child()->get_content();
return $zval;
}
function to_zval_after($zval)
{
$zval->connection = db_connect($zval->db, $zval->username, $zval->passwd);
- or -
unset($zval->unwanted_field);
- or -
$obj = new OtherObject($zval->value);
return $obj;
}
Class manipulation.
$soap_server->map("namespace:type", "class", MAP_CLASS_INSTANCE (default) |
MAP_CLASS_CONVERT);
MAP_CLASS_INSTANCE:
class myType
{
function to_xml_before()
{
unset($this->unwanted);
}
function to_xml()
{
$xmldom_node = new DomElement($this->name);
$xmldom_node->set_content($this->value);
return $xmldom_node;
}
function to_xml_after($xmldom_node)
{
$xmldom_node->first_child()->unlink_node();
return $xmldom;
}
function to_zval_before($dom_node)
{
$xmldom_node->first_child()->unlink_node();
return $xmldom;
}
function to_zval($xmldom_node)
{
$this->data = $xmldom_node->get_contents();
}
function to_zval_after()
{
unlink($this->data);
}
}
MAP_CLASS_CONVERT:
class myType
{
function to_xml_before($zval)
{
return $modified_zval;
}
function to_xml($zval)
{
$xmldom_node = new DomElement($zval->name);
$xmldom_node->set_content($zval->value);
return $xmldom_node;
}
function to_xml_after($xmldom_node)
{
$xmldom_node->first_child()->unlink_node();
return $xmldom_node;
}
function to_zval_before($xmldom_node)
{
return $xmldom_node->first_child()->unlink_node();
}
function to_zval($xmldom_node)
{
$zval->data = $xmldom_node->first_child()->get_content();
return $zval;
}
function to_zval_after($zval)
{
$zval->connection = db_connect($zval->db, $zval->username, $zval->passwd);
- or -
unset($zval->unwanted_field);
- or -
$obj = new OtherObject($zval->value);
return $obj;
}
}
Basically the difference between MAP_CLASS_INSTANCE and MAP_CLASS_CONVERT is
the instance treats the class as the type thats being converted and the
class_convert treats the class as just a "conversion" class.
$soap_server->autoMap(true/false);
This will tell the server to "automap" types. Meaning if
while serializing/deseralizing "someType" and there is an
existing php class called "someType" then it ill try and call
the corrisponding functions.
I was looking into the domxml extension. The extension will need some changes
for my needs and some other issues that dont currently work right now.
like:
$xml = new DomElement("asdf");
doesn't really give you a new DomElement();
you have to do:
$xml = new DomElement("asfd");
$real_xml = $xml->domelement("asdf");
it looks like the constructors aren't working. I know how to fix them its just
a matter of getting in the changes.
the extension could still handle the
to_xml_before()
and
to_zval_after()
with out domxml changes or if domxml isn't even compiled in.
- Brad
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: phpsurf <ph...@if...> - 2002-05-05 11:10:46
|
> -----Original Message-----
> From: brad lafountain [mailto:rod...@ya...]
> Sent: dimanche 5 mai 2002 07:24
> To: phpsurf
> Cc: php...@li...
> Subject: RE: [PHP-SOAP-DEV] WSDLGenerator
>
>
>
> --- phpsurf <ph...@if...> wrote:
> > right, we are talking about several things here ! :)
> >
> > 1- wsdl auto-generation:
> > ok, good idea, I have no other experience of this (only played with java
> > implementation which is type specific ...)
>
> Yeah this topic is going to be hard. Im going to try and
> implements something
> here. Its not going to be as good as the java stuff becuase of
> the type stuff.
> but maybe it can adventuall be useful.
>
> Im not sure if you know this but you can currently bind your service to a
> existing wsdl.
> <?
> $server = new SoapServer(...);
> $server->bind("some_wsdl.wsdl");
> $server->handle();
> ?>
>
> This does a little magic. If your wsdl defines types in the schema part.
> php-saop will try and "convert" the type automatically according
> to the type in
> the wsdl.
>
> Say the wsdl defines
> <message name="getShort">
> <part name="Result" type="xsd:short" />
> </message>
>
> and the php function
>
> function getShort()
> {
> return "123";
> }
>
> php-soap would return the message with the xsd:short type not the
> xsd:string.
> again this is only done when binding to a wsdl.
>
> This also works with complex types.
> <complexType name="someType">
> <all>
> <element name="short" type="xsd:short" />
> <element name="string" type="xsd:string" />
> </all>
> </complexType>
>
> <message name="getType">
> <part name="Result" type="someType" />
> </message>
>
> function getType()
> {
> $ret->string = "some string";
> $ret->short = "123";
> $ret->double 1.3;
> return $ret;
> }
>
> php-soap will return the type as someType and add string as xsd:string and
> short as xsd:short but leave out the double.
>
> I think this is pretty flexable and powerfull, but this
> functionality is still
> pretty experimental. I need to get how that works documented.
> That also works
> on the client side.
>
> $soap = new SoapObject("somewsdl.wsdl");
> $soap->echoShort("1234");
Right, this is already a pretty good job !
What I meant is just the ability to override this default serialization
process with some custom handler.
This is specially usefull in complex services when you want to work with
some kind of beans ... because you can add some controls, or actions like
countings or locking, or adding framework-level parameters like for security
or debug ... when passing your objects to the soap service.
I've been working on a quite big project using apache soap and this kind of
stuff has been very very useful because it let us implement a complex
framework above the apache soap to do all the technical stuff, and then
developers only had to deal with the business aspect of the service ...
>
>
> What i did just add today is the abilty to do this.
> http://server.com/some_php_service.php?WSDL (.net style)
> and if there is a wsdl bound to that service it will output the wsdl.
>
don't seen it yet ...
gonna have a look
> >
> > 2- php/soap serialization/deserialization:
> > indeed wsdl defines the soap type of a soap parameter, but my
> point here is:
> > how to determine the corresponding php type ?
> > As they do in the Apache java implementation of soap, we could have a
> > mapping table that would associate each soap type with a php
> type ... and we
> > could also be able to define our own serializer/deserializer
> function ...
> > something that would tell php_soap (for a specific instance of
> soap server):
> > "every time you receive a soap type 'mySchemaSoapType' (as
> defined is the
> > schema part of the wsdl), deserialize it into the following php type
> > 'myPhpClass' (which would be an existing class, or any php type code),
> > using the deserializer handler
> 'mySoapToPhpDeserializerFunction' (wich is an
> > existing function)"
> >
> > this definition could run-time on client side and setup (a specific xml
> > document/ or comments in the code) on server side
> > or simply run-time on both client and server side ...
> > for example, one can define a bean_serializer which will only
> send via soap
> > attributes of an object that have a getter method ...
> >
> > maybe you could have a look at the Apache Implementation of
> Soap in Java to
> > see how they handled this problematic ...
> > I think their aproach is very attractive because it really let
> the developer
> > do what he wants with the soap implementation ... this is very
> powerfull !
> > http://xml.apache.org/soap/index.html
>
> If the above small sample made any sence. the php-to-xml can be
> handled by
> using wsdls but the xml-to-php only seralizes to stdobjects and
> standard php
> types.
this is where I suggested a mapping table (eg: the soap mapping registry in
apache soap)
to define the right php class for a specific xsd type.
> A api would be pretty nice for this functionality. I do
> use apache soap
> i haven't go into the custom seriazlation.
>
I did mostly use bean serialization and complex types with several actions
in the getter/setter methods.
this could be really good stuff to have this :)
maybe you can even find something better than apache did ...
> - Brad
>
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif
|
|
From: brad l. <rod...@ya...> - 2002-05-05 05:25:36
|
Oh i forgot to mention. I also made these functions only available in debug
mode. Because this does hurt performance.
- Brad
--- brad lafountain <rod...@ya...> wrote:
> Yeah i realized i need request and response after i released it..
>
> The current cvs has __getLastRequest() and __getLastResponse() and it got
> rid
> of __getLastMessage().
>
> - Brad
> --- phpsurf <ph...@if...> wrote:
> > by the way, like you added __getLastMessage() to get the last request send
> > by the client, can you also add a method to get the last response received
> > by the server ? something like __getLastResponse() or whatever you want :)
> >
> > thx
> >
> > > -----Original Message-----
> > > From: php...@li...
> > > [mailto:php...@li...]On Behalf
> > > Of brad lafountain
> > > Sent: jeudi 2 mai 2002 07:05
> > > To: php...@li...
> > > Cc: ahr...@ic...
> > > Subject: [PHP-SOAP-DEV] New Release php-soap_0.1.1
> > >
> > >
> > > Ok i have put out a new release.
> > > I know that that was quick.. I havn't added that much but i realized i
> did
> > > something that was't good. So i suggest who ever is using it use the new
> > > update.
> > >
> > > What this does...
> > >
> > > Some handing stuff..
> > > The server useto automatically send a fault when
> > > always_populate_raw_post_data
> > > was off. Now it will check for HTTP_RAW_POST_DATA first then check the
> ini
> > > setting and if it's off it will finally send the fault saying the
> > > ini setting
> > > should be on.
> > >
> > > The client useto deny any request that doesn't have the
> > > Content-Type: text/xml.
> > > I changed it so that it will check the header first if its not
> > > xml it will read
> > > the first 5 bytes and see if its xml ("<?xml"). If that is true
> > > it will try and
> > > process the request normall.
> > >
> > > By default the server automatically exposed all methods available
> > > to php. I
> > > changed it so that it doesn't expose any. You now will have to
> > > tell the server
> > > every function you want exposed.
> > > See...
> > > http://phpsoaptoolkit.sourceforge.net/phpsoap/guide/documentation/
> > classes/soapserver/addfunction/
> >
> > You can still expose all methods by calling
> > $soap_server->addFunction(SOAP_FUNCTIONS_ALL);
> > but its not default anymore..
> >
> > New Features..
> > On the server side you can now return custom faults..
> >
> > function do_something($data)
> > {
> > if(!$data)
> > return new SoapFault(string "fault_string" [, string "fault_code"] [,
> > mixed
> > "details] [, "fault_actor]);
> >
> > return "thanks for suppling $data";
> > }
> >
> > On the client side you can now see the seralized soap call
> >
> > $client->some_soap_call();
> > echo $client->__getLastMessage();
> >
> > The big reason for the patch already..
> > I added php stream handling code for the upcomming streams in php-4.3.0.
> > When
> > i did i change php_close_socket(socket) to close(socket). So all of you
> > client
> > calls are keeping a connection to the server. So if you are calling
> multiple
> > calls to the same server you will notice a huge performance difference.
> >
> > And i fixed a few mem leaks.
> >
> > And the config.m4 file in the tar ball won't be a tar ball again.
> >
> > A windows binary and tarballs will be posted shortly
> >
> > Enjoy.. keep the feed back comming.
> >
> > -Brad
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Health - your guide to health and wellness
> > http://health.yahoo.com
> >
> > _______________________________________________________________
> >
> > Have big pipes? SourceForge.net is looking for download mirrors. We supply
> > the hardware. You get the recognition. Email Us: ban...@so...
> > _______________________________________________
> > Phpsoaptoolkit-development mailing list
> > Php...@li...
> > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
> >
> >
> >
>
______________________________________________________________________________
> > ifrance.com, l'email gratuit le plus complet de l'Internet !
> > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > http://www.ifrance.com/_reloc/email.emailif
> >
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: brad l. <rod...@ya...> - 2002-05-05 05:23:58
|
--- phpsurf <ph...@if...> wrote:
> right, we are talking about several things here ! :)
>
> 1- wsdl auto-generation:
> ok, good idea, I have no other experience of this (only played with java
> implementation which is type specific ...)
Yeah this topic is going to be hard. Im going to try and implements something
here. Its not going to be as good as the java stuff becuase of the type stuff.
but maybe it can adventuall be useful.
Im not sure if you know this but you can currently bind your service to a
existing wsdl.
<?
$server = new SoapServer(...);
$server->bind("some_wsdl.wsdl");
$server->handle();
?>
This does a little magic. If your wsdl defines types in the schema part.
php-saop will try and "convert" the type automatically according to the type in
the wsdl.
Say the wsdl defines
<message name="getShort">
<part name="Result" type="xsd:short" />
</message>
and the php function
function getShort()
{
return "123";
}
php-soap would return the message with the xsd:short type not the xsd:string.
again this is only done when binding to a wsdl.
This also works with complex types.
<complexType name="someType">
<all>
<element name="short" type="xsd:short" />
<element name="string" type="xsd:string" />
</all>
</complexType>
<message name="getType">
<part name="Result" type="someType" />
</message>
function getType()
{
$ret->string = "some string";
$ret->short = "123";
$ret->double 1.3;
return $ret;
}
php-soap will return the type as someType and add string as xsd:string and
short as xsd:short but leave out the double.
I think this is pretty flexable and powerfull, but this functionality is still
pretty experimental. I need to get how that works documented. That also works
on the client side.
$soap = new SoapObject("somewsdl.wsdl");
$soap->echoShort("1234");
What i did just add today is the abilty to do this.
http://server.com/some_php_service.php?WSDL (.net style)
and if there is a wsdl bound to that service it will output the wsdl.
>
> 2- php/soap serialization/deserialization:
> indeed wsdl defines the soap type of a soap parameter, but my point here is:
> how to determine the corresponding php type ?
> As they do in the Apache java implementation of soap, we could have a
> mapping table that would associate each soap type with a php type ... and we
> could also be able to define our own serializer/deserializer function ...
> something that would tell php_soap (for a specific instance of soap server):
> "every time you receive a soap type 'mySchemaSoapType' (as defined is the
> schema part of the wsdl), deserialize it into the following php type
> 'myPhpClass' (which would be an existing class, or any php type code),
> using the deserializer handler 'mySoapToPhpDeserializerFunction' (wich is an
> existing function)"
>
> this definition could run-time on client side and setup (a specific xml
> document/ or comments in the code) on server side
> or simply run-time on both client and server side ...
> for example, one can define a bean_serializer which will only send via soap
> attributes of an object that have a getter method ...
>
> maybe you could have a look at the Apache Implementation of Soap in Java to
> see how they handled this problematic ...
> I think their aproach is very attractive because it really let the developer
> do what he wants with the soap implementation ... this is very powerfull !
> http://xml.apache.org/soap/index.html
If the above small sample made any sence. the php-to-xml can be handled by
using wsdls but the xml-to-php only seralizes to stdobjects and standard php
types. A api would be pretty nice for this functionality. I do use apache soap
i haven't go into the custom seriazlation.
- Brad
>
>
> > -----Original Message-----
> > From: brad lafountain [mailto:rod...@ya...]
> > Sent: mercredi 1 mai 2002 00:41
> > To: phpsurf; php...@li...
> > Subject: RE: [PHP-SOAP-DEV] WSDLGenerator
> >
> >
> >
> > --- phpsurf <ph...@if...> wrote:
> > >
> > > > -----Original Message-----
> > > > When php-soap starts generating wsdl's it is going to be soley
> > > > dependant on the
> > > > user documenting their code. phpdoc style. Otherwise the wsdl
> > > > generator can't
> > > > know types and parameters.
> >
> > Well I think we are talking about two differnt things here.
> > 1) wsdl generation..
> >
> > The wsdl has definintions about parameter types and return
> > types. We all know
> > php isn't type specfic. So for php-soap to be able to
> > auto-generate wsdls it
> > needs to know the types of parameters and the return values. So
> > was looking
> > into phpdoc and how to use that.
> >
> > /**
> > Short Desc
> >
> > Long Desc
> >
> > @param name string description
> > @param value string description
> > @returns string description
> > */
> > function do_something($name, $value)
> > {
> > return $name . $value;
> > }
> >
> > if someone documents their code then php-soap can parse that file
> > and pull the
> > necessary information and genearte a wsdl from that. but that
> > assumes that the
> > developers are going to write their docuemntation correctly. Or i
> > can write a
> > script that will help the user guide thru a process of generating
> > a wsdl. the
> > "wizzard" will prompt them for parameters and return types.
> >
> > 2) php serialization / soap serialziation to and from native php and soap.
> > Currently there is no way to override the way that it will
> > seralize types. I do
> > plan on creating an api to allow the users both on the client and
> > server to
> > override serialization. I havn't thought of a good way of doing
> > it yet. But for
> > the most part im pretty sure you wont need this.
> > The way it currently works right now is.
> > your wsdl defines this
> > <schema>
> > <s:element name="someObject">
> > <s:complexType>
> > <s:element type="s:string" name="memberOne">
> > <s:element type="s:string" name="memberTwo">
> > </s:complexType>
> > </s:element>
> > </schema>
> > and you have this code
> > $server = new SoapServer();
> > $server->addFunction("returnSomeObject");
> > $server->bind("/wsdl/location/test.wsdl");
> > $server->handle();
> >
> > function returnSomeObject()
> > {
> > $ret->memberOne = 'test';
> > $ret->memberTwo = 'test';
> > $ret->memberThree = 'test';
> > $ret->memberFour = 'test';
> > return ret;
> > }
> >
> > now anytime someone invokes returnSomeObject it will only serialize
> > memberOne and memberTwo and leave out memberFour and memberFive.
> > and again with types it will auto convert types to the correct values.
> > and with i don't know if you have seen SoapVar. But you can do
> > something like
> > this
> >
> > function getDateTime()
> > {
> > return new SoapVar(time(), XSD_DATETIME);
> > }
> >
> > and that will serialize to the correct date time string that xsd defines.
> >
> > take alook at
> >
> > http://phpsoaptoolkit.sourceforge.net/phpsoap/guide/documentation/
> classes/soapvar/constructor/
>
>
> Does this make any sence.
>
>
> If i still need to add a way to override serialziation then i will add it. I
> just need to come up with a way to give the user a way to define it.
>
>
> - brad
>
>
> >
> > are you talking about, for example, object creation from soap values, I
> mean
> > : how to transform a SoapValue into the apropriate PhpClass/Type ?
> >
> > I've been working a litle with the java Apache Soap implementation ...
> > and they use, on the client side some kind of mapping table which is a
> > property of each SoapClient.
> >
> > and on the server side, they use an xml file called "deployment
> descriptor"
> > to describe the java properties of the web services available on the
> server.
> > I know this server side on .Net is in the code comments likewhat you
> suggest
> > ...
> >
> > indeed, it's not really a question :)
> > I just wanted to know your thinking about that ...
> >
> >
> >
> ____________________________________________________________________________
> __
> > ifrance.com, l'email gratuit le plus complet de l'Internet !
> > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > http://www.ifrance.com/_reloc/email.emailif
> >
> >
> >
> > _______________________________________________
> > Phpsoaptoolkit-development mailing list
> > Php...@li...
> > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
>
>
______________________________________________________________________________
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
>
=== message truncated ===
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: brad l. <rod...@ya...> - 2002-05-05 04:56:35
|
Yeah i realized i need request and response after i released it..
The current cvs has __getLastRequest() and __getLastResponse() and it got rid
of __getLastMessage().
- Brad
--- phpsurf <ph...@if...> wrote:
> by the way, like you added __getLastMessage() to get the last request send
> by the client, can you also add a method to get the last response received
> by the server ? something like __getLastResponse() or whatever you want :)
>
> thx
>
> > -----Original Message-----
> > From: php...@li...
> > [mailto:php...@li...]On Behalf
> > Of brad lafountain
> > Sent: jeudi 2 mai 2002 07:05
> > To: php...@li...
> > Cc: ahr...@ic...
> > Subject: [PHP-SOAP-DEV] New Release php-soap_0.1.1
> >
> >
> > Ok i have put out a new release.
> > I know that that was quick.. I havn't added that much but i realized i did
> > something that was't good. So i suggest who ever is using it use the new
> > update.
> >
> > What this does...
> >
> > Some handing stuff..
> > The server useto automatically send a fault when
> > always_populate_raw_post_data
> > was off. Now it will check for HTTP_RAW_POST_DATA first then check the ini
> > setting and if it's off it will finally send the fault saying the
> > ini setting
> > should be on.
> >
> > The client useto deny any request that doesn't have the
> > Content-Type: text/xml.
> > I changed it so that it will check the header first if its not
> > xml it will read
> > the first 5 bytes and see if its xml ("<?xml"). If that is true
> > it will try and
> > process the request normall.
> >
> > By default the server automatically exposed all methods available
> > to php. I
> > changed it so that it doesn't expose any. You now will have to
> > tell the server
> > every function you want exposed.
> > See...
> > http://phpsoaptoolkit.sourceforge.net/phpsoap/guide/documentation/
> classes/soapserver/addfunction/
>
> You can still expose all methods by calling
> $soap_server->addFunction(SOAP_FUNCTIONS_ALL);
> but its not default anymore..
>
> New Features..
> On the server side you can now return custom faults..
>
> function do_something($data)
> {
> if(!$data)
> return new SoapFault(string "fault_string" [, string "fault_code"] [,
> mixed
> "details] [, "fault_actor]);
>
> return "thanks for suppling $data";
> }
>
> On the client side you can now see the seralized soap call
>
> $client->some_soap_call();
> echo $client->__getLastMessage();
>
> The big reason for the patch already..
> I added php stream handling code for the upcomming streams in php-4.3.0.
> When
> i did i change php_close_socket(socket) to close(socket). So all of you
> client
> calls are keeping a connection to the server. So if you are calling multiple
> calls to the same server you will notice a huge performance difference.
>
> And i fixed a few mem leaks.
>
> And the config.m4 file in the tar ball won't be a tar ball again.
>
> A windows binary and tarballs will be posted shortly
>
> Enjoy.. keep the feed back comming.
>
> -Brad
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
>
______________________________________________________________________________
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: phpsurf <ph...@if...> - 2002-05-05 01:17:11
|
to help you on that bug :
return new SoapFault("my error message !");
makes PHP crash;
but
return new SoapFault("my error message !", null, null, null);
seems to work fine ...
some problem with the default values, i guess ...
> -----Original Message-----
> From: php...@li...
> [mailto:php...@li...]On Behalf
> Of phpsurf
> Sent: dimanche 5 mai 2002 03:16
> To: brad lafountain; php...@li...
> Subject: RE: [PHP-SOAP-DEV] Custom Faults
>
>
> well ...
> I've just restored my test scripts and added some new custom errors after
> installing the last release 0.1.1, and
> they don't work !
> return new SoapFault("my error message !");
> makes PHP crash ! :(
>
> (working on Windows 2000 + Apache 1.23 + PHP 4.2.0 + Php_Soap 0.1.1)
>
> > -----Original Message-----
> > From: php...@li...
> > [mailto:php...@li...]On Behalf
> > Of brad lafountain
> > Sent: jeudi 2 mai 2002 05:21
> > To: phpsurf; php...@li...
> > Subject: RE: [PHP-SOAP-DEV] Custom Faults
> >
> >
> >
> > --- phpsurf <ph...@if...> wrote:
> > > well, it sounds good ...
> > > new SoapFault ("faultstring", ["faultcode", ]["faultactor",
> > ]["details"])
> >
> > I am implementing this now...
> >
> > I think i will do..
> > new SoapFault ("faultstring", ["faultcode", ]["details",
> ]["faultactor"])
> > or
> > new SoapFault ("faultstring", ["details", ]["faultcode",
> ]["faultactor"])
> >
> > What do you think...
> >
> > The reason for this is i think people will use details more than
> > they will use
> > actor....
> >
> >
> > >
> > > but maybe, you could take advantage from waiting for the new exception
> > > system in ZendEngine2 ...
> > >
> > > then, we could have several exception classes, extending SoapFault ...
> > >
> > > class MySoapException extends SoapFault {
> > > var $faultcode = "MYAPP:MyCode";
> > > ...
> > > }
> > >
> > > and then in you soap method:
> > >
> > > throw new MySoapException ();
> >
> > Yeah i want to do alot of stuff with zend two...
> >
> > throwing faults on server and catching faults on client...
> >
> >
> > >
> > >
> > >
> > > -----Original Message-----
> > > From: brad lafountain [mailto:rod...@ya...]
> > > Sent: mardi 30 avril 2002 20:00
> > > To: phpsurf; php...@li...
> > > Subject: Re: [PHP-SOAP-DEV] Custom Faults
> > >
> > >
> > >
> > > --- phpsurf <ph...@if...> wrote:
> > > > Hi
> > > >
> > > > just a quick question :
> > > > is it possible to throw custom faults on the soap server side ?
> > > >
> > > > the native PHP errors handling is really great ... everything works
> > > without
> > > > having to handle anything !
> > > > but what if I want to qualify the different types of errors
> and assign
> > > them
> > > > different FaultCodes ?
> > >
> > > Currently there is no way of doing this. I do have a
> SoapFault class. I
> > > wanted
> > > to intergrate that on the server side so you could do what you
> > are talking
> > > about.
> > >
> > > How would you suggest the fault code return look.
> > >
> > > function do_something()
> > > {
> > > if(some_status)
> > > return string;
> > > else
> > > return new SoapFault("code", "details");
> > > }
> > >
> > >
> > > - brad
> > > >
> > > > thx
> > > >
> > > >
> > > >
> > >
> > >
> > __________________________________________________________________
> > __________
> > > __
> > > > ifrance.com, l'email gratuit le plus complet de l'Internet !
> > > > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > > > http://www.ifrance.com/_reloc/email.emailif
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Phpsoaptoolkit-development mailing list
> > > > Php...@li...
> > > >
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Health - your guide to health and wellness
> > http://health.yahoo.com
> >
> >
> >
> __________________________________________________________________
> __________
> __
> > ifrance.com, l'email gratuit le plus complet de l'Internet !
> > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > http://www.ifrance.com/_reloc/email.emailif
> >
> >
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> __________________________________________________________________
> ____________
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif
|
|
From: phpsurf <ph...@if...> - 2002-05-05 01:08:24
|
by the way, like you added __getLastMessage() to get the last request send
by the client, can you also add a method to get the last response received
by the server ? something like __getLastResponse() or whatever you want :)
thx
> -----Original Message-----
> From: php...@li...
> [mailto:php...@li...]On Behalf
> Of brad lafountain
> Sent: jeudi 2 mai 2002 07:05
> To: php...@li...
> Cc: ahr...@ic...
> Subject: [PHP-SOAP-DEV] New Release php-soap_0.1.1
>
>
> Ok i have put out a new release.
> I know that that was quick.. I havn't added that much but i realized i did
> something that was't good. So i suggest who ever is using it use the new
> update.
>
> What this does...
>
> Some handing stuff..
> The server useto automatically send a fault when
> always_populate_raw_post_data
> was off. Now it will check for HTTP_RAW_POST_DATA first then check the ini
> setting and if it's off it will finally send the fault saying the
> ini setting
> should be on.
>
> The client useto deny any request that doesn't have the
> Content-Type: text/xml.
> I changed it so that it will check the header first if its not
> xml it will read
> the first 5 bytes and see if its xml ("<?xml"). If that is true
> it will try and
> process the request normall.
>
> By default the server automatically exposed all methods available
> to php. I
> changed it so that it doesn't expose any. You now will have to
> tell the server
> every function you want exposed.
> See...
> http://phpsoaptoolkit.sourceforge.net/phpsoap/guide/documentation/
classes/soapserver/addfunction/
You can still expose all methods by calling
$soap_server->addFunction(SOAP_FUNCTIONS_ALL);
but its not default anymore..
New Features..
On the server side you can now return custom faults..
function do_something($data)
{
if(!$data)
return new SoapFault(string "fault_string" [, string "fault_code"] [,
mixed
"details] [, "fault_actor]);
return "thanks for suppling $data";
}
On the client side you can now see the seralized soap call
$client->some_soap_call();
echo $client->__getLastMessage();
The big reason for the patch already..
I added php stream handling code for the upcomming streams in php-4.3.0.
When
i did i change php_close_socket(socket) to close(socket). So all of you
client
calls are keeping a connection to the server. So if you are calling multiple
calls to the same server you will notice a huge performance difference.
And i fixed a few mem leaks.
And the config.m4 file in the tar ball won't be a tar ball again.
A windows binary and tarballs will be posted shortly
Enjoy.. keep the feed back comming.
-Brad
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
_______________________________________________________________
Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: ban...@so...
_______________________________________________
Phpsoaptoolkit-development mailing list
Php...@li...
https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif
|
|
From: phpsurf <ph...@if...> - 2002-05-05 01:05:26
|
well ...
I've just restored my test scripts and added some new custom errors after
installing the last release 0.1.1, and
they don't work !
return new SoapFault("my error message !");
makes PHP crash ! :(
(working on Windows 2000 + Apache 1.23 + PHP 4.2.0 + Php_Soap 0.1.1)
> -----Original Message-----
> From: php...@li...
> [mailto:php...@li...]On Behalf
> Of brad lafountain
> Sent: jeudi 2 mai 2002 05:21
> To: phpsurf; php...@li...
> Subject: RE: [PHP-SOAP-DEV] Custom Faults
>
>
>
> --- phpsurf <ph...@if...> wrote:
> > well, it sounds good ...
> > new SoapFault ("faultstring", ["faultcode", ]["faultactor",
> ]["details"])
>
> I am implementing this now...
>
> I think i will do..
> new SoapFault ("faultstring", ["faultcode", ]["details", ]["faultactor"])
> or
> new SoapFault ("faultstring", ["details", ]["faultcode", ]["faultactor"])
>
> What do you think...
>
> The reason for this is i think people will use details more than
> they will use
> actor....
>
>
> >
> > but maybe, you could take advantage from waiting for the new exception
> > system in ZendEngine2 ...
> >
> > then, we could have several exception classes, extending SoapFault ...
> >
> > class MySoapException extends SoapFault {
> > var $faultcode = "MYAPP:MyCode";
> > ...
> > }
> >
> > and then in you soap method:
> >
> > throw new MySoapException ();
>
> Yeah i want to do alot of stuff with zend two...
>
> throwing faults on server and catching faults on client...
>
>
> >
> >
> >
> > -----Original Message-----
> > From: brad lafountain [mailto:rod...@ya...]
> > Sent: mardi 30 avril 2002 20:00
> > To: phpsurf; php...@li...
> > Subject: Re: [PHP-SOAP-DEV] Custom Faults
> >
> >
> >
> > --- phpsurf <ph...@if...> wrote:
> > > Hi
> > >
> > > just a quick question :
> > > is it possible to throw custom faults on the soap server side ?
> > >
> > > the native PHP errors handling is really great ... everything works
> > without
> > > having to handle anything !
> > > but what if I want to qualify the different types of errors and assign
> > them
> > > different FaultCodes ?
> >
> > Currently there is no way of doing this. I do have a SoapFault class. I
> > wanted
> > to intergrate that on the server side so you could do what you
> are talking
> > about.
> >
> > How would you suggest the fault code return look.
> >
> > function do_something()
> > {
> > if(some_status)
> > return string;
> > else
> > return new SoapFault("code", "details");
> > }
> >
> >
> > - brad
> > >
> > > thx
> > >
> > >
> > >
> >
> >
> __________________________________________________________________
> __________
> > __
> > > ifrance.com, l'email gratuit le plus complet de l'Internet !
> > > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > > http://www.ifrance.com/_reloc/email.emailif
> > >
> > >
> > >
> > > _______________________________________________
> > > Phpsoaptoolkit-development mailing list
> > > Php...@li...
> > >
https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
>
>
____________________________________________________________________________
__
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
_______________________________________________________________
Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: ban...@so...
_______________________________________________
Phpsoaptoolkit-development mailing list
Php...@li...
https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif
|
|
From: phpsurf <ph...@if...> - 2002-05-05 00:29:41
|
right, we are talking about several things here ! :) 1- wsdl auto-generation: ok, good idea, I have no other experience of this (only played with java implementation which is type specific ...) 2- php/soap serialization/deserialization: indeed wsdl defines the soap type of a soap parameter, but my point here is: how to determine the corresponding php type ? As they do in the Apache java implementation of soap, we could have a mapping table that would associate each soap type with a php type ... and we could also be able to define our own serializer/deserializer function ... something that would tell php_soap (for a specific instance of soap server): "every time you receive a soap type 'mySchemaSoapType' (as defined is the schema part of the wsdl), deserialize it into the following php type 'myPhpClass' (which would be an existing class, or any php type code), using the deserializer handler 'mySoapToPhpDeserializerFunction' (wich is an existing function)" this definition could run-time on client side and setup (a specific xml document/ or comments in the code) on server side or simply run-time on both client and server side ... for example, one can define a bean_serializer which will only send via soap attributes of an object that have a getter method ... maybe you could have a look at the Apache Implementation of Soap in Java to see how they handled this problematic ... I think their aproach is very attractive because it really let the developer do what he wants with the soap implementation ... this is very powerfull ! http://xml.apache.org/soap/index.html > -----Original Message----- > From: brad lafountain [mailto:rod...@ya...] > Sent: mercredi 1 mai 2002 00:41 > To: phpsurf; php...@li... > Subject: RE: [PHP-SOAP-DEV] WSDLGenerator > > > > --- phpsurf <ph...@if...> wrote: > > > > > -----Original Message----- > > > When php-soap starts generating wsdl's it is going to be soley > > > dependant on the > > > user documenting their code. phpdoc style. Otherwise the wsdl > > > generator can't > > > know types and parameters. > > Well I think we are talking about two differnt things here. > 1) wsdl generation.. > > The wsdl has definintions about parameter types and return > types. We all know > php isn't type specfic. So for php-soap to be able to > auto-generate wsdls it > needs to know the types of parameters and the return values. So > was looking > into phpdoc and how to use that. > > /** > Short Desc > > Long Desc > > @param name string description > @param value string description > @returns string description > */ > function do_something($name, $value) > { > return $name . $value; > } > > if someone documents their code then php-soap can parse that file > and pull the > necessary information and genearte a wsdl from that. but that > assumes that the > developers are going to write their docuemntation correctly. Or i > can write a > script that will help the user guide thru a process of generating > a wsdl. the > "wizzard" will prompt them for parameters and return types. > > 2) php serialization / soap serialziation to and from native php and soap. > Currently there is no way to override the way that it will > seralize types. I do > plan on creating an api to allow the users both on the client and > server to > override serialization. I havn't thought of a good way of doing > it yet. But for > the most part im pretty sure you wont need this. > The way it currently works right now is. > your wsdl defines this > <schema> > <s:element name="someObject"> > <s:complexType> > <s:element type="s:string" name="memberOne"> > <s:element type="s:string" name="memberTwo"> > </s:complexType> > </s:element> > </schema> > and you have this code > $server = new SoapServer(); > $server->addFunction("returnSomeObject"); > $server->bind("/wsdl/location/test.wsdl"); > $server->handle(); > > function returnSomeObject() > { > $ret->memberOne = 'test'; > $ret->memberTwo = 'test'; > $ret->memberThree = 'test'; > $ret->memberFour = 'test'; > return ret; > } > > now anytime someone invokes returnSomeObject it will only serialize > memberOne and memberTwo and leave out memberFour and memberFive. > and again with types it will auto convert types to the correct values. > and with i don't know if you have seen SoapVar. But you can do > something like > this > > function getDateTime() > { > return new SoapVar(time(), XSD_DATETIME); > } > > and that will serialize to the correct date time string that xsd defines. > > take alook at > > http://phpsoaptoolkit.sourceforge.net/phpsoap/guide/documentation/ classes/soapvar/constructor/ Does this make any sence. If i still need to add a way to override serialziation then i will add it. I just need to come up with a way to give the user a way to define it. - brad > > are you talking about, for example, object creation from soap values, I mean > : how to transform a SoapValue into the apropriate PhpClass/Type ? > > I've been working a litle with the java Apache Soap implementation ... > and they use, on the client side some kind of mapping table which is a > property of each SoapClient. > > and on the server side, they use an xml file called "deployment descriptor" > to describe the java properties of the web services available on the server. > I know this server side on .Net is in the code comments likewhat you suggest > ... > > indeed, it's not really a question :) > I just wanted to know your thinking about that ... > > > ____________________________________________________________________________ __ > ifrance.com, l'email gratuit le plus complet de l'Internet ! > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... > http://www.ifrance.com/_reloc/email.emailif > > > > _______________________________________________ > Phpsoaptoolkit-development mailing list > Php...@li... > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development __________________________________________________ Do You Yahoo!? Yahoo! Health - your guide to health and wellness http://health.yahoo.com ______________________________________________________________________________ ifrance.com, l'email gratuit le plus complet de l'Internet ! vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP... http://www.ifrance.com/_reloc/email.emailif |
|
From: phpsurf <ph...@if...> - 2002-05-04 23:51:41
|
Hi !
I'm just coming back from some days off to the beach ...
great to hear you're planning to play with ZE2 :)
I have no preference for SoapFault params order ... 'till we can still call
it
new SoapFault ("faultstring", null, "faultcode", null) or anything like that
...
> -----Original Message-----
> From: php...@li...
> [mailto:php...@li...]On Behalf
> Of brad lafountain
> Sent: jeudi 2 mai 2002 05:21
> To: phpsurf; php...@li...
> Subject: RE: [PHP-SOAP-DEV] Custom Faults
>
>
>
> --- phpsurf <ph...@if...> wrote:
> > well, it sounds good ...
> > new SoapFault ("faultstring", ["faultcode", ]["faultactor",
> ]["details"])
>
> I am implementing this now...
>
> I think i will do..
> new SoapFault ("faultstring", ["faultcode", ]["details", ]["faultactor"])
> or
> new SoapFault ("faultstring", ["details", ]["faultcode", ]["faultactor"])
>
> What do you think...
>
> The reason for this is i think people will use details more than
> they will use
> actor....
>
>
> >
> > but maybe, you could take advantage from waiting for the new exception
> > system in ZendEngine2 ...
> >
> > then, we could have several exception classes, extending SoapFault ...
> >
> > class MySoapException extends SoapFault {
> > var $faultcode = "MYAPP:MyCode";
> > ...
> > }
> >
> > and then in you soap method:
> >
> > throw new MySoapException ();
>
> Yeah i want to do alot of stuff with zend two...
>
> throwing faults on server and catching faults on client...
>
>
> >
> >
> >
> > -----Original Message-----
> > From: brad lafountain [mailto:rod...@ya...]
> > Sent: mardi 30 avril 2002 20:00
> > To: phpsurf; php...@li...
> > Subject: Re: [PHP-SOAP-DEV] Custom Faults
> >
> >
> >
> > --- phpsurf <ph...@if...> wrote:
> > > Hi
> > >
> > > just a quick question :
> > > is it possible to throw custom faults on the soap server side ?
> > >
> > > the native PHP errors handling is really great ... everything works
> > without
> > > having to handle anything !
> > > but what if I want to qualify the different types of errors and assign
> > them
> > > different FaultCodes ?
> >
> > Currently there is no way of doing this. I do have a SoapFault class. I
> > wanted
> > to intergrate that on the server side so you could do what you
> are talking
> > about.
> >
> > How would you suggest the fault code return look.
> >
> > function do_something()
> > {
> > if(some_status)
> > return string;
> > else
> > return new SoapFault("code", "details");
> > }
> >
> >
> > - brad
> > >
> > > thx
> > >
> > >
> > >
> >
> >
> __________________________________________________________________
> __________
> > __
> > > ifrance.com, l'email gratuit le plus complet de l'Internet !
> > > vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> > > http://www.ifrance.com/_reloc/email.emailif
> > >
> > >
> > >
> > > _______________________________________________
> > > Phpsoaptoolkit-development mailing list
> > > Php...@li...
> > >
https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
>
>
____________________________________________________________________________
__
> ifrance.com, l'email gratuit le plus complet de l'Internet !
> vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
> http://www.ifrance.com/_reloc/email.emailif
>
>
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
_______________________________________________________________
Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: ban...@so...
_______________________________________________
Phpsoaptoolkit-development mailing list
Php...@li...
https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
______________________________________________________________________________
ifrance.com, l'email gratuit le plus complet de l'Internet !
vos emails depuis un navigateur, en POP3, sur Minitel, sur le WAP...
http://www.ifrance.com/_reloc/email.emailif
|
|
From: brad l. <rod...@ya...> - 2002-05-04 16:38:01
|
well i think i found the segfault.. i already commited it to cvs. You can d/l it and test it, i can't get to segfault anymore. - Brad __________________________________________________ Do You Yahoo!? Yahoo! Health - your guide to health and wellness http://health.yahoo.com |
|
From: brad l. <rod...@ya...> - 2002-05-04 15:21:06
|
Hmm...
The script that i can get to segfault if i put some other code (nothing to do
with phpsoap) will stop segfaulting too.
The thing im curious about is im not able to get the hello_world example to
crash. try pulling down the current cvs. run the script again, the one that
crashes, tail logs/error_log see if thers a segfault in there.
- Brad
--- Andrey Hristov <ahr...@ic...> wrote:
> Maybe I've some good news for you. Last night I do some hacking on the test
> scripts.
> Testing with ab a simple hello_world_client+server.php gives me 377 errors -
> probably all of those are because of the segfault.
> I started to debug in th userspace to realize where it is crashing - and
> what a surprise, after I started to debug the scripts do not crash.
> Here I will post 2 pairs of sample scripts. The first one gives errors, the
> second one not. To be almost completely sure I have done throughout test for
> the latter pair for 1,500,000 reqs or 25200 secs(7hours) - it did 1,386,142
> requests. The difference between then is the server part of the pair. No
> segfaulting scripts have just 2 lines more and these lines have nothing in
> common with the SOAP extension.
> hello_world_client.php + hello_world_server.php:
> <?php
> error_reporting(E_ALL);
> echo microtime()."<br>\n";
> $hello = new SoapObject("http://192.168.1.140/hello_world_server.php",
> "urn:HelloWord");
> echo microtime()."<br>\n";
> echo $hello->hello_soap("alala");
> echo microtime()."<br>\n";
> //var_dump($hello);
> //var_dump(get_class_methods('SoapServer'));
> ?>
> hello_world_server.php
> <?php
> /*
> $fname = 'tests/dbg'.str_replace(" ","_",microtime()).'.xml';
> $fd=fopen($fname,'w+');
>
> ob_start();
> //var_dump($HTTP_RAW_POST_DATA);
> //$a=ob_get_contents();
> ob_end_clean();
>
> fputs($fd,$a."\n");
> fclose($fd);
> */
> $server = new SoapServer("urn:HelloWord");
> /*
> $fd=fopen($fname,'a+');
> fputs($fd,"after_server_create\n");
> fclose($fd);
> */
> $server->addfunction("hello_soap");
>
> //$fd=fopen($fname,'a');
> //fputs($fd,"after_addfunction\n");
> //fclose($fd);
>
> $server->handle();
>
> function hello_soap($message){
> return "PHP-SOAP says ($message)";
> }
> ?>
> NOT SEGFAULTING pair:
> <?php
> error_reporting(E_ALL);
> echo microtime()."<br>\n";
> $hello = new SoapObject("http://192.168.1.140/hello_world_server_noseg.php",
> "urn:HelloWord");
> echo microtime()."<br>\n";
> echo $hello->hello_soap("alala");
> echo microtime()."<br>\n";
> //var_dump($hello);
> //var_dump(get_class_methods('SoapServer'));
> ?>
> <?php
> /*
> $fname = 'tests/dbg'.str_replace(" ","_",microtime()).'.xml';
> $fd=fopen($fname,'w+');
> */
> ob_start();
> //var_dump($HTTP_RAW_POST_DATA);
> //$a=ob_get_contents();
> ob_end_clean();
> /*
> fputs($fd,$a."\n");
> fclose($fd);
> */
> $server = new SoapServer("urn:HelloWord");
> /*
> $fd=fopen($fname,'a+');
> fputs($fd,"after_server_create\n");
> fclose($fd);
> */
> $server->addfunction("hello_soap");
>
> //$fd=fopen($fname,'a');
> //fputs($fd,"after_addfunction\n");
> //fclose($fd);
>
> $server->handle();
>
> function hello_soap($message){
> return "PHP-SOAP says ($message)";
> }
> ?>
>
> Results from segfaulting pair:
> Concurrency Level: 20
> Time taken for tests: 849.216 seconds
> Complete requests: 50000
> Failed requests: 377
> (Connect: 0, Length: 377, Exceptions: 0)
> Broken pipe errors: 0
> Total transferred: 16836709 bytes
> HTML transferred: 4933615 bytes
> Requests per second: 58.88 [#/sec] (mean)
> Time per request: 339.69 [ms] (mean)
> Time per request: 16.98 [ms] (mean, across all concurrent requests)
> Transfer rate: 19.83 [Kbytes/sec] received
>
> Results from nonsegfaulting pair:
> Concurrency Level: 20
> Time taken for tests: 25200.047 seconds
> Complete requests: 1386142
> Failed requests: 0
> Broken pipe errors: 0
> Total transferred: 467135920 bytes
> HTML transferred: 137229840 bytes
> Requests per second: 55.01 [#/sec] (mean)
> Time per request: 363.60 [ms] (mean)
> Time per request: 18.18 [ms] (mean, across all concurrent requests)
> Transfer rate: 18.54 [Kbytes/sec] received
>
> I hope that this will give some light what is going on.
>
> Have a nice day
>
> Andrey
>
> ----- Original Message -----
> From: "brad lafountain" <rod...@ya...>
> To: "Andrey Hristov" <ahr...@ic...>
> Sent: Friday, May 03, 2002 9:47 PM
> Subject: Re: [PHP-SOAP-DEV] some benchmarks.
>
>
> > Yeah i use malloc on purpose..
> >
> > I use it for all of my wsdl stuff. My idea behind it is once a wsdl has
> been
> > parsed it can be kept around. Wsdl caching... its not in shared memory so
> each
> > demon will have to cache it. But it should work pretty good. even client
> and
> > server can share the same cached wsdl. Maybe someday i will make it use
> shared
> > memory.
> >
> > Let me know how the benchmarks go.
> >
> > Ill get that segfault eventually!
> >
> > - Brad
> >
> > --- Andrey Hristov <ahr...@ic...> wrote:
> > > Brad,
> > >
> > > I've downloaded some other web stressing tools to do some other
> benchmarks.
> > > Unfortunately I cannot use MS Web Stress Tool because it runs only on NT
> > > 4,5,6 but I've found some Open Source stuff on sourceforge. May be I'll
> test
> > > tonight and post the results after that or tommorow. I'm sorry but I
> cannot
> > > help you about this segfault. Few months ago I tried to write a php
> > > extension and had segfaults on extension globals because I didn't knowed
> > > that they are treated in special way. I had also segfault on when
> working
> > > with strings - not smart ones.
> > > May I ask why you use malloc() instead of emalloc(). I've read int the
> "Web
> > > development with PHP4" and the same info available on php.net and
> zend.com
> > > that this kind of calls should not be performed. Look at the docs at
> php.net
> > > in the section of module writing. malloc() memory survive the after the
> end
> > > of script's life. Isn't here the problem.
> > >
> > > Andrey
> > >
> > > ----- Original Message -----
> > > From: "brad lafountain" <rod...@ya...>
> > > To: "Andrey Hristov" <ahr...@ic...>;
> > > <php...@li...>
> > > Sent: Friday, May 03, 2002 6:24 PM
> > > Subject: Re: [PHP-SOAP-DEV] some benchmarks.
> > >
> > >
> > > > This sounds good :)..
> > > >
> > > > I did some benchmarks before too..
> > > > I did a
> > > >
> > > > <?
> > > > echo "hello world";
> > > > ?>
>
=== message truncated ===
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: Andrey H. <ahr...@ic...> - 2002-05-04 08:22:11
|
Maybe I've some good news for you. Last night I do some hacking on the test
scripts.
Testing with ab a simple hello_world_client+server.php gives me 377 errors -
probably all of those are because of the segfault.
I started to debug in th userspace to realize where it is crashing - and
what a surprise, after I started to debug the scripts do not crash.
Here I will post 2 pairs of sample scripts. The first one gives errors, the
second one not. To be almost completely sure I have done throughout test for
the latter pair for 1,500,000 reqs or 25200 secs(7hours) - it did 1,386,142
requests. The difference between then is the server part of the pair. No
segfaulting scripts have just 2 lines more and these lines have nothing in
common with the SOAP extension.
hello_world_client.php + hello_world_server.php:
<?php
error_reporting(E_ALL);
echo microtime()."<br>\n";
$hello = new SoapObject("http://192.168.1.140/hello_world_server.php",
"urn:HelloWord");
echo microtime()."<br>\n";
echo $hello->hello_soap("alala");
echo microtime()."<br>\n";
//var_dump($hello);
//var_dump(get_class_methods('SoapServer'));
?>
hello_world_server.php
<?php
/*
$fname = 'tests/dbg'.str_replace(" ","_",microtime()).'.xml';
$fd=fopen($fname,'w+');
ob_start();
//var_dump($HTTP_RAW_POST_DATA);
//$a=ob_get_contents();
ob_end_clean();
fputs($fd,$a."\n");
fclose($fd);
*/
$server = new SoapServer("urn:HelloWord");
/*
$fd=fopen($fname,'a+');
fputs($fd,"after_server_create\n");
fclose($fd);
*/
$server->addfunction("hello_soap");
//$fd=fopen($fname,'a');
//fputs($fd,"after_addfunction\n");
//fclose($fd);
$server->handle();
function hello_soap($message){
return "PHP-SOAP says ($message)";
}
?>
NOT SEGFAULTING pair:
<?php
error_reporting(E_ALL);
echo microtime()."<br>\n";
$hello = new SoapObject("http://192.168.1.140/hello_world_server_noseg.php",
"urn:HelloWord");
echo microtime()."<br>\n";
echo $hello->hello_soap("alala");
echo microtime()."<br>\n";
//var_dump($hello);
//var_dump(get_class_methods('SoapServer'));
?>
<?php
/*
$fname = 'tests/dbg'.str_replace(" ","_",microtime()).'.xml';
$fd=fopen($fname,'w+');
*/
ob_start();
//var_dump($HTTP_RAW_POST_DATA);
//$a=ob_get_contents();
ob_end_clean();
/*
fputs($fd,$a."\n");
fclose($fd);
*/
$server = new SoapServer("urn:HelloWord");
/*
$fd=fopen($fname,'a+');
fputs($fd,"after_server_create\n");
fclose($fd);
*/
$server->addfunction("hello_soap");
//$fd=fopen($fname,'a');
//fputs($fd,"after_addfunction\n");
//fclose($fd);
$server->handle();
function hello_soap($message){
return "PHP-SOAP says ($message)";
}
?>
Results from segfaulting pair:
Concurrency Level: 20
Time taken for tests: 849.216 seconds
Complete requests: 50000
Failed requests: 377
(Connect: 0, Length: 377, Exceptions: 0)
Broken pipe errors: 0
Total transferred: 16836709 bytes
HTML transferred: 4933615 bytes
Requests per second: 58.88 [#/sec] (mean)
Time per request: 339.69 [ms] (mean)
Time per request: 16.98 [ms] (mean, across all concurrent requests)
Transfer rate: 19.83 [Kbytes/sec] received
Results from nonsegfaulting pair:
Concurrency Level: 20
Time taken for tests: 25200.047 seconds
Complete requests: 1386142
Failed requests: 0
Broken pipe errors: 0
Total transferred: 467135920 bytes
HTML transferred: 137229840 bytes
Requests per second: 55.01 [#/sec] (mean)
Time per request: 363.60 [ms] (mean)
Time per request: 18.18 [ms] (mean, across all concurrent requests)
Transfer rate: 18.54 [Kbytes/sec] received
I hope that this will give some light what is going on.
Have a nice day
Andrey
----- Original Message -----
From: "brad lafountain" <rod...@ya...>
To: "Andrey Hristov" <ahr...@ic...>
Sent: Friday, May 03, 2002 9:47 PM
Subject: Re: [PHP-SOAP-DEV] some benchmarks.
> Yeah i use malloc on purpose..
>
> I use it for all of my wsdl stuff. My idea behind it is once a wsdl has
been
> parsed it can be kept around. Wsdl caching... its not in shared memory so
each
> demon will have to cache it. But it should work pretty good. even client
and
> server can share the same cached wsdl. Maybe someday i will make it use
shared
> memory.
>
> Let me know how the benchmarks go.
>
> Ill get that segfault eventually!
>
> - Brad
>
> --- Andrey Hristov <ahr...@ic...> wrote:
> > Brad,
> >
> > I've downloaded some other web stressing tools to do some other
benchmarks.
> > Unfortunately I cannot use MS Web Stress Tool because it runs only on NT
> > 4,5,6 but I've found some Open Source stuff on sourceforge. May be I'll
test
> > tonight and post the results after that or tommorow. I'm sorry but I
cannot
> > help you about this segfault. Few months ago I tried to write a php
> > extension and had segfaults on extension globals because I didn't knowed
> > that they are treated in special way. I had also segfault on when
working
> > with strings - not smart ones.
> > May I ask why you use malloc() instead of emalloc(). I've read int the
"Web
> > development with PHP4" and the same info available on php.net and
zend.com
> > that this kind of calls should not be performed. Look at the docs at
php.net
> > in the section of module writing. malloc() memory survive the after the
end
> > of script's life. Isn't here the problem.
> >
> > Andrey
> >
> > ----- Original Message -----
> > From: "brad lafountain" <rod...@ya...>
> > To: "Andrey Hristov" <ahr...@ic...>;
> > <php...@li...>
> > Sent: Friday, May 03, 2002 6:24 PM
> > Subject: Re: [PHP-SOAP-DEV] some benchmarks.
> >
> >
> > > This sounds good :)..
> > >
> > > I did some benchmarks before too..
> > > I did a
> > >
> > > <?
> > > echo "hello world";
> > > ?>
> > >
> > > vs
> > >
> > > <?
> > > $server = new SoapServer();
> > > $server->handle();
> > > function hello()
> > > {
> > > return "hello world";
> > > }
> > > ?>
> > >
> > > I don't remember exactly what my resutls were but they weren't far
off
> > from
> > > each other... like 350 requests vs 400 or 450...
> > >
> > > I have every intension to keep the base code as fast as possible.
Adding
> > wsdl
> > > validation and other stuff will slow down the code but for the most
part I
> > am
> > > going to keep speed in mind at every release. Expecially if you don't
use
> > > wsdl's.. when you are talking php -> php it will be briliantly fast.
> > >
> > > Lets not forget what code is easiest to read :) This is another huge
part
> > im
> > > trying to push.
> > >
> > > Maybe i can get my benchmarking page functional so we can start
posting
> > these
> > > benchmarks.
> > >
> > > I fixed some more bugs last nite stuff having to do with wsdl server
> > binding.
> > > And i was serializing the Map type wrong.
> > >
> > > I am trying to track down a random segfault. Man its pissing me off.
I
> > will
> > > feel pretty releaved when i get that little bastard.
> > >
> > > _ brad _
> > >
> >
> >
> >
> > _______________________________________________________________
> >
> > Have big pipes? SourceForge.net is looking for download mirrors. We
supply
> > the hardware. You get the recognition. Email Us:
ban...@so...
> > _______________________________________________
> > Phpsoaptoolkit-development mailing list
> > Php...@li...
> > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Health - your guide to health and wellness
> http://health.yahoo.com
>
|
|
From: Andrey H. <ahr...@ic...> - 2002-05-03 18:05:08
|
Brad, I've downloaded some other web stressing tools to do some other benchmarks. Unfortunately I cannot use MS Web Stress Tool because it runs only on NT 4,5,6 but I've found some Open Source stuff on sourceforge. May be I'll test tonight and post the results after that or tommorow. I'm sorry but I cannot help you about this segfault. Few months ago I tried to write a php extension and had segfaults on extension globals because I didn't knowed that they are treated in special way. I had also segfault on when working with strings - not smart ones. May I ask why you use malloc() instead of emalloc(). I've read int the "Web development with PHP4" and the same info available on php.net and zend.com that this kind of calls should not be performed. Look at the docs at php.net in the section of module writing. malloc() memory survive the after the end of script's life. Isn't here the problem. Andrey ----- Original Message ----- From: "brad lafountain" <rod...@ya...> To: "Andrey Hristov" <ahr...@ic...>; <php...@li...> Sent: Friday, May 03, 2002 6:24 PM Subject: Re: [PHP-SOAP-DEV] some benchmarks. > This sounds good :).. > > I did some benchmarks before too.. > I did a > > <? > echo "hello world"; > ?> > > vs > > <? > $server = new SoapServer(); > $server->handle(); > function hello() > { > return "hello world"; > } > ?> > > I don't remember exactly what my resutls were but they weren't far off from > each other... like 350 requests vs 400 or 450... > > I have every intension to keep the base code as fast as possible. Adding wsdl > validation and other stuff will slow down the code but for the most part I am > going to keep speed in mind at every release. Expecially if you don't use > wsdl's.. when you are talking php -> php it will be briliantly fast. > > Lets not forget what code is easiest to read :) This is another huge part im > trying to push. > > Maybe i can get my benchmarking page functional so we can start posting these > benchmarks. > > I fixed some more bugs last nite stuff having to do with wsdl server binding. > And i was serializing the Map type wrong. > > I am trying to track down a random segfault. Man its pissing me off. I will > feel pretty releaved when i get that little bastard. > > _ brad _ > |
|
From: brad l. <rod...@ya...> - 2002-05-03 15:25:00
|
This sounds good :)..
I did some benchmarks before too..
I did a
<?
echo "hello world";
?>
vs
<?
$server = new SoapServer();
$server->handle();
function hello()
{
return "hello world";
}
?>
I don't remember exactly what my resutls were but they weren't far off from
each other... like 350 requests vs 400 or 450...
I have every intension to keep the base code as fast as possible. Adding wsdl
validation and other stuff will slow down the code but for the most part I am
going to keep speed in mind at every release. Expecially if you don't use
wsdl's.. when you are talking php -> php it will be briliantly fast.
Lets not forget what code is easiest to read :) This is another huge part im
trying to push.
Maybe i can get my benchmarking page functional so we can start posting these
benchmarks.
I fixed some more bugs last nite stuff having to do with wsdl server binding.
And i was serializing the Map type wrong.
I am trying to track down a random segfault. Man its pissing me off. I will
feel pretty releaved when i get that little bastard.
_ brad _
--- Andrey Hristov <ahr...@ic...> wrote:
> Ok. I realized. You meant dl('php_soap.so');
> I've done some benchmarks this night but due to problems with my 2.5 years
> old windows 95 install I had no way to connect and send the results. I've
> also noticed the problem. See the results. There you can see that 12 errors
> on about 3600 request.
> Here are the results. I've no other suitable for mass testing tool - only
> ab.
> I did 3 benchmarks using the 'ab' tool (v. 1.3d)
> 1)Benchmarking PHP-SOAP extention:
> client script:
> hello_world_client.php
> <?php
> echo microtime()."<br>\n";
> $hello = new SoapObject("http://192.168.1.140/hello_world_server.php",
> "urn:HelloWord");
> $hello->hello_soap("alala");
> echo microtime()."<br>\n";
> ?>
> server script:
> hello_world_server.php
> <?php
> $server = new SoapServer("urn:HelloWord");
> $server->addfunction("hello_soap");
> $server->handle();
> function hello_soap($message){
> return "PHP-SOAP says ($message)";
> }
> ?>
> Results:
> Concurrency Level: 5
> Time taken for tests: 60.004 seconds
> Complete requests: 3645
> Failed requests: 12
> (Connect: 0, Length: 12, Exceptions: 0)
> Broken pipe errors: 0
> Total transferred: 1057608 bytes
> HTML transferred: 189384 bytes
> Requests per second: 60.75 [#/sec] (mean)
> Time per request: 82.31 [ms] (mean)
> Time per request: 16.46 [ms] (mean, across all concurrent requests)
> Transfer rate: 17.63 [Kbytes/sec] received
>
> Connnection Times (ms)
> min mean[+/-sd] median max
> Connect: 0 0 3.4 0 63
> Processing: 14 81 70.1 55 432
> Waiting: 1 81 70.2 55 432
> Total: 14 82 70.0 56 432
>
> Percentage of the requests served within a certain time (ms)
> 50% 56
> 66% 98
> 75% 127
> 80% 144
> 90% 185
> 95% 222
> 98% 263
> 99% 283
> 100% 432 (last request)
>
>
> 2)Benchmarking XMLRPC extension. Mix of compiled routines and userspache
> functions(socket openings).
> client script:
> <?php
> require 'link_to_defs.php';
> require SITE_LIB.'xmlrpc-utils.php';
> echo microtime()."<br>\n";
> $some = xu_rpc_http("fub",array(array('one'=>"someone"),"like","you"),
> SITE_DOMAIN, SITE_PATH.'server.php',80,0);// SITE_DOMAIN is 192.168.1.1.40 &
> SITE_PATH is "/"
> echo microtime()."<br>\n";
> ?>
> server script:
> <?php
> require 'link_to_defs.php';
> require SITE_LIB."xmlrpc-utils.php";
> function greeting_func($method_name, $params, $app_data) {
> $name = $params[0];
> return array("hello $name. How are you today?");
> }
> $xmlrpc_server = xmlrpc_server_create();
> if($xmlrpc_server) {
> // register methods
>
> if(!xmlrpc_server_register_method($xmlrpc_server, "greeting",
> "greeting_func")) {
> die("<h2>method registration failed.</h2>");
> }
> $request_xml = $HTTP_RAW_POST_DATA;
> $foo = xmlrpc_server_call_method($xmlrpc_server, $request_xml, $response,
> array(output_type => "xml"));
> xu_server_send_http_response($foo);
> $success = xmlrpc_server_destroy($xmlrpc_server);
> }
> ?>
> Results:
>
> Concurrency Level: 5
> Time taken for tests: 60.082 seconds
> Complete requests: 1392
> Failed requests: 0
> Broken pipe errors: 0
> Total transferred: 403970 bytes
> HTML transferred: 72436 bytes
> Requests per second: 23.17 [#/sec] (mean)
> Time per request: 215.81 [ms] (mean)
> Time per request: 43.16 [ms] (mean, across all concurrent requests)
> Transfer rate: 6.72 [Kbytes/sec] received
>
> Connnection Times (ms)
> min mean[+/-sd] median max
> Connect: 0 0 0.5 0 11
> Processing: 41 215 92.6 211 746
> Waiting: 41 215 92.6 210 745
> Total: 41 215 92.7 211 753
>
> Percentage of the requests served within a certain time (ms)
> 50% 211
> 66% 245
> 75% 270
> 80% 289
> 90% 332
> 95% 374
> 98% 424
> 99% 495
> 100% 753 (last request)
>
> 3)NuSOAP library - fully user space.
> client script (I got it from the NuSOAP package):
> nusoap_client.php:
> <?php
> echo microtime()."<br>\n";
> require_once('nusoap.php');
> $parameters = array('name'=>'dietrich');
> $soapclient = new soapclient('http://192.168.1.140/nusoap_server.php');
> $soapclient->call('hello',$parameters);
> echo microtime()."<br>\n";
> ?>
> server script:
> <?php
> require_once('nusoap.php');
> $s = new soap_server;
> $s->register('hello');
> function hello($name){
> if($name == ''){
> return new soap_fault('Client','','Must supply a valid name.');
> }
> return "hello $name!";
> }
> $s->service($HTTP_RAW_POST_DATA);
> ?>
> Results:
>
> Concurrency Level: 5
> Time taken for tests: 60.064 seconds
> Complete requests: 165
> Failed requests: 0
> Broken pipe errors: 0
> Total transferred: 48140 bytes
> HTML transferred: 8632 bytes
> Requests per second: 2.75 [#/sec] (mean)
> Time per request: 1820.12 [ms] (mean)
> Time per request: 364.02 [ms] (mean, across all concurrent requests)
> Transfer rate: 0.80 [Kbytes/sec] received
>
> Connnection Times (ms)
> min mean[+/-sd] median max
> Connect: 0 0 0.0 0 0
> Processing: 1316 1779 153.2 1778 2920
> Waiting: 1316 1779 153.1 1778 2919
> Total: 1316 1779 153.2 1778 2920
>
> Percentage of the requests served within a certain time (ms)
> 50% 1778
> 66% 1804
> 75% 1860
> 80% 1871
> 90% 1951
> 95% 1973
> 98% 2061
> 99% 2120
> 100% 2920 (last request)
>
>
> CONCLUSIONS:
> As you may see the SOAP extension is the fastest. It is roughly 3 times
> faster than XMLRPC and more than 30 times faster than NuSOAP.
> However PHP-SOAP is in the beggining of its life so it might become slower
> but might faster.
> The testing configuration is:
> Hwd: AMD K6-2/300;96MB RAM PC100;Chaintech AGM2 MB;Fujitsu 4.3GB HDD
> OS : Linux Mandrake. Kernel 2.4.18.
> Http server : Apache 1.3.23 (this comes with Mandrake 8.2)/PHP 4.0.2RC2
>
> The testing machine is slow for today's standarts but PHP-SOAP is working
> fast. K6-2/300 is about 2-3 times slower than PIII/500. Think about new
> machine at 1.6Ghz.
>
>
> Andrey
>
=== message truncated ===
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: Andrey H. <ahr...@ic...> - 2002-05-03 13:55:29
|
Ok. I realized. You meant dl('php_soap.so');
I've done some benchmarks this night but due to problems with my 2.5 years
old windows 95 install I had no way to connect and send the results. I've
also noticed the problem. See the results. There you can see that 12 errors
on about 3600 request.
Here are the results. I've no other suitable for mass testing tool - only
ab.
I did 3 benchmarks using the 'ab' tool (v. 1.3d)
1)Benchmarking PHP-SOAP extention:
client script:
hello_world_client.php
<?php
echo microtime()."<br>\n";
$hello = new SoapObject("http://192.168.1.140/hello_world_server.php",
"urn:HelloWord");
$hello->hello_soap("alala");
echo microtime()."<br>\n";
?>
server script:
hello_world_server.php
<?php
$server = new SoapServer("urn:HelloWord");
$server->addfunction("hello_soap");
$server->handle();
function hello_soap($message){
return "PHP-SOAP says ($message)";
}
?>
Results:
Concurrency Level: 5
Time taken for tests: 60.004 seconds
Complete requests: 3645
Failed requests: 12
(Connect: 0, Length: 12, Exceptions: 0)
Broken pipe errors: 0
Total transferred: 1057608 bytes
HTML transferred: 189384 bytes
Requests per second: 60.75 [#/sec] (mean)
Time per request: 82.31 [ms] (mean)
Time per request: 16.46 [ms] (mean, across all concurrent requests)
Transfer rate: 17.63 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 3.4 0 63
Processing: 14 81 70.1 55 432
Waiting: 1 81 70.2 55 432
Total: 14 82 70.0 56 432
Percentage of the requests served within a certain time (ms)
50% 56
66% 98
75% 127
80% 144
90% 185
95% 222
98% 263
99% 283
100% 432 (last request)
2)Benchmarking XMLRPC extension. Mix of compiled routines and userspache
functions(socket openings).
client script:
<?php
require 'link_to_defs.php';
require SITE_LIB.'xmlrpc-utils.php';
echo microtime()."<br>\n";
$some = xu_rpc_http("fub",array(array('one'=>"someone"),"like","you"),
SITE_DOMAIN, SITE_PATH.'server.php',80,0);// SITE_DOMAIN is 192.168.1.1.40 &
SITE_PATH is "/"
echo microtime()."<br>\n";
?>
server script:
<?php
require 'link_to_defs.php';
require SITE_LIB."xmlrpc-utils.php";
function greeting_func($method_name, $params, $app_data) {
$name = $params[0];
return array("hello $name. How are you today?");
}
$xmlrpc_server = xmlrpc_server_create();
if($xmlrpc_server) {
// register methods
if(!xmlrpc_server_register_method($xmlrpc_server, "greeting",
"greeting_func")) {
die("<h2>method registration failed.</h2>");
}
$request_xml = $HTTP_RAW_POST_DATA;
$foo = xmlrpc_server_call_method($xmlrpc_server, $request_xml, $response,
array(output_type => "xml"));
xu_server_send_http_response($foo);
$success = xmlrpc_server_destroy($xmlrpc_server);
}
?>
Results:
Concurrency Level: 5
Time taken for tests: 60.082 seconds
Complete requests: 1392
Failed requests: 0
Broken pipe errors: 0
Total transferred: 403970 bytes
HTML transferred: 72436 bytes
Requests per second: 23.17 [#/sec] (mean)
Time per request: 215.81 [ms] (mean)
Time per request: 43.16 [ms] (mean, across all concurrent requests)
Transfer rate: 6.72 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.5 0 11
Processing: 41 215 92.6 211 746
Waiting: 41 215 92.6 210 745
Total: 41 215 92.7 211 753
Percentage of the requests served within a certain time (ms)
50% 211
66% 245
75% 270
80% 289
90% 332
95% 374
98% 424
99% 495
100% 753 (last request)
3)NuSOAP library - fully user space.
client script (I got it from the NuSOAP package):
nusoap_client.php:
<?php
echo microtime()."<br>\n";
require_once('nusoap.php');
$parameters = array('name'=>'dietrich');
$soapclient = new soapclient('http://192.168.1.140/nusoap_server.php');
$soapclient->call('hello',$parameters);
echo microtime()."<br>\n";
?>
server script:
<?php
require_once('nusoap.php');
$s = new soap_server;
$s->register('hello');
function hello($name){
if($name == ''){
return new soap_fault('Client','','Must supply a valid name.');
}
return "hello $name!";
}
$s->service($HTTP_RAW_POST_DATA);
?>
Results:
Concurrency Level: 5
Time taken for tests: 60.064 seconds
Complete requests: 165
Failed requests: 0
Broken pipe errors: 0
Total transferred: 48140 bytes
HTML transferred: 8632 bytes
Requests per second: 2.75 [#/sec] (mean)
Time per request: 1820.12 [ms] (mean)
Time per request: 364.02 [ms] (mean, across all concurrent requests)
Transfer rate: 0.80 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1316 1779 153.2 1778 2920
Waiting: 1316 1779 153.1 1778 2919
Total: 1316 1779 153.2 1778 2920
Percentage of the requests served within a certain time (ms)
50% 1778
66% 1804
75% 1860
80% 1871
90% 1951
95% 1973
98% 2061
99% 2120
100% 2920 (last request)
CONCLUSIONS:
As you may see the SOAP extension is the fastest. It is roughly 3 times
faster than XMLRPC and more than 30 times faster than NuSOAP.
However PHP-SOAP is in the beggining of its life so it might become slower
but might faster.
The testing configuration is:
Hwd: AMD K6-2/300;96MB RAM PC100;Chaintech AGM2 MB;Fujitsu 4.3GB HDD
OS : Linux Mandrake. Kernel 2.4.18.
Http server : Apache 1.3.23 (this comes with Mandrake 8.2)/PHP 4.0.2RC2
The testing machine is slow for today's standarts but PHP-SOAP is working
fast. K6-2/300 is about 2-3 times slower than PIII/500. Think about new
machine at 1.6Ghz.
Andrey
|
|
From: brad l. <rod...@ya...> - 2002-05-03 02:18:16
|
You built php-soap statically. This has always worked. What i mean
as dso is when you product libsoap.so and use ither dl() or chnage
the phpconfig to load php-soap. Using the phpize script i think
they call it "self contained extensions".
let me know how your benchmarks go.
I am currently trying to track down a segfault problem on linux. Tell
me if you get it. Its kinda random.
-brad
--- Andrey Hristov <ahr...@ic...> wrote:
> Good news. I've succeeded to compile the soap extension in the libphp4.so
> and the example with hello_world_client.php and hello_world_server.php is
> working - no failure like before. I only decompressed in the ext directory,
> then ./buildconf and after that edited my config.nice to add '--enable-soap'
> \ . I waited for errors on the make but no one appeared.
>
>
> hello_world_client.php
> <?php
> error_reporting(E_ALL);
> $hello = new SoapObject("http://192.168.1.40/hello_world_server.php",
> "urn:HelloWord");
> echo $hello->hello_soap("alala");
> //var_dump($hello);
> //var_dump(get_class_methods('SoapServer'));
> ?>
>
> <?php
> $server = new SoapServer("urn:HelloWord");
> $server->addfunction("hello_soap");
> $server->handle();
>
> function hello_soap($message){
> return "PHP-SOAP says ($message)";
> }
> ?>
>
> Tommorow I'll some simple benchmarks.
>
> Brad, look here some some info about config.m4 unless you know that.
> http://php.net/manual/en/zend.build.php
>
> Andrey
>
>
>
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: Andrey H. <ahr...@ic...> - 2002-05-02 23:32:44
|
Good news. I've succeeded to compile the soap extension in the libphp4.so
and the example with hello_world_client.php and hello_world_server.php is
working - no failure like before. I only decompressed in the ext directory,
then ./buildconf and after that edited my config.nice to add '--enable-soap'
\ . I waited for errors on the make but no one appeared.
hello_world_client.php
<?php
error_reporting(E_ALL);
$hello = new SoapObject("http://192.168.1.40/hello_world_server.php",
"urn:HelloWord");
echo $hello->hello_soap("alala");
//var_dump($hello);
//var_dump(get_class_methods('SoapServer'));
?>
<?php
$server = new SoapServer("urn:HelloWord");
$server->addfunction("hello_soap");
$server->handle();
function hello_soap($message){
return "PHP-SOAP says ($message)";
}
?>
Tommorow I'll some simple benchmarks.
Brad, look here some some info about config.m4 unless you know that.
http://php.net/manual/en/zend.build.php
Andrey
|
|
From: andrey <ahr...@ic...> - 2002-05-02 18:53:55
|
> I look at it like that soap service IS that class. Why i did that is... You can > build a class and expose it thur soap.. and have any client use your soap > object as is.. no changing your object.. just like they would use it locally. I > really want to keep this functionality. Its very very useful. Cause you can > create an instance of the object and persist it. I can make the extension not > expose private functions like _*() functions. That is a good point. Two choices : 1) to ban _*() functions or 2) to allow export_*() functions but they will be seen as *() (export_sum() will be sum() outside) "export" can be any other meaningful word. Regards, Andrey |
|
From: brad l. <rod...@ya...> - 2002-05-02 18:43:30
|
--- andrey <ahr...@ic...> wrote:
> Hi Brad,
>
> > $soap->setClass("some_class");
> >
> > class some_class
> > {
> > function method_one();
> > function method_two();
> > }
> >
> > now the soap server will act just like that class will.
> But what if the class has some methods I don't want to expose one or more
> methods? However I think that adding method of a class is done transparently
> so
> $server->addfunction(array("some_class","method_one"));
> This kind of adding works in the gtk extension as well as in the xmlrpc
> extension.
Well when you do
$soap->setClass("class");
I look at it like that soap service IS that class. Why i did that is... You can
build a class and expose it thur soap.. and have any client use your soap
object as is.. no changing your object.. just like they would use it locally. I
really want to keep this functionality. Its very very useful. Cause you can
create an instance of the object and persist it. I can make the extension not
expose private functions like _*() functions.
take a look at that sample..
http://phpsoaptoolkit.sourceforge.net/phpsoap/guide/samples/session_object/
Now if you are talking about a non-class based soap-server and you just want to
expose some methods to an existing class the class method will have to be
static. Meaning the method can't access any $this-> members or functions. The
extension doesn't currently handle this.
here is an example.
<?
$server->addFunction(array("foo" => "bar", "foo" => "foo"));
// when someone trys to call foo->foo (thru soap) it will fail.. cause
// there isn't an instance of foo.
class foo
{
var $foo = 'foo';
function bar($bar)
{
return "bar says $bar";
}
function foo()
{
return "foo can't say $this->foo";
}
}
?>
> > yeah it can't be compiled as a dso.. it can be compiled in staically..
> > just your normal configure.
> >
> > ./configure --enable-soap --(other php config
> options) --with-apache=(apache
> > location)
> Ok. I'll try to build it tonight.
tell me how it goes
>
> Andrey
>
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|
|
From: andrey <ahr...@ic...> - 2002-05-02 18:14:40
|
Hi Brad,
> $soap->setClass("some_class");
>
> class some_class
> {
> function method_one();
> function method_two();
> }
>
> now the soap server will act just like that class will.
But what if the class has some methods I don't want to expose one or more
methods? However I think that adding method of a class is done transparently
so
$server->addfunction(array("some_class","method_one"));
This kind of adding works in the gtk extension as well as in the xmlrpc
extension.
> yeah it can't be compiled as a dso.. it can be compiled in staically..
> just your normal configure.
>
> ./configure --enable-soap --(other php config
options) --with-apache=(apache
> location)
Ok. I'll try to build it tonight.
Andrey
|
|
From: brad l. <rod...@ya...> - 2002-05-02 18:07:21
|
This sample runs fine on my machine....
try this..
<?php
$hello = new SoapObject("http://localhost:8080/hello_world_server.php",
"urn:HelloWorld");
echo $hello->hello_soap();
if($hello->__isFault())
var_dump($hello->__getFault());
?>
That will show you if there server or client is giving you a fault.
- Brad
--- Jean-Charles Preaux <jc....@wa...> wrote:
> Re
> it's ok there is no crash but when i launch the script below, the httpd
> daemon is lauched a least 50 times, without any response from the browser
> i launch hello_world_client.php
>
> /* hello_world_client.php */
> <?php
> $hello = new SoapObject("http://localhost:8080/hello_world_server.php",
> "urn:HelloWorld");
> echo $hello->hello_soap();
> ?>
>
> /* hello_world_server.php */
> <?php
> $server = new SoapServer("urn:HelloWorld");
> $server->addFunction("hello_soap");
> $server->handle();
>
>
> function hello_soap($message){
> return "PHP-SOAP¨says ($message)";
> }
>
> ?>
> /* when i run gdb */
> web:/opt/serveur/bin# gdb httpd
> GNU gdb 2002-04-01-cvs
> Copyright 2002 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "i386-linux"...(no debugging symbols found)...
> (gdb) run -X -f /opt/serveur/conf/httpd.conf
> Starting program: /opt/serveur/bin/httpd -X -f /opt/serveur/conf/httpd.conf
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
> (no debugging symbols found)...(no debugging symbols found)...(no debugging
> symbols found)...(no debugging symbols found)...(no debugging symbols
> found)...
>
>
> is it ok ?
> thx
> Jean-Charles Preaux
> .
> ----- Original Message -----
> From: "brad lafountain" <rod...@ya...>
> To: "Jean-Charles Preaux" <jc....@wa...>
> Cc: <php...@li...>
> Sent: Thursday, May 02, 2002 5:18 PM
> Subject: Re: [PHP-SOAP-DEV] 'always_populate_raw_post_data' question
>
>
> > Well... I dunno about that....
> >
> > Can you supply a backtrace...
> >
> > gdb httpd
> >
> > run -X
> >
> > then run the script that cause the crash...
> >
> > then type bt...
> >
> > this will get you a backtrace and more information for me to go on...
> >
> > - Brad
> > --- Jean-Charles Preaux <jc....@wa...> wrote:
> > > in fact
> > > i fust typing the hello_world-server.php in the browser.
> > > :(
> > > but when i use hello_world_server.php it crash my web server ...without
> any
> > > response.
> > > thx
> > > ----- Original Message -----
> > > From: "brad lafountain" <rod...@ya...>
> > > To: "Jean-Charles Preaux" <jc....@wa...>;
> > > <php...@li...>
> > > Sent: Thursday, May 02, 2002 4:36 PM
> > > Subject: Re: [PHP-SOAP-DEV] 'always_populate_raw_post_data' question
> > >
> > >
> > > > Hmm... are you running a SoapObject against the hello_world-server or
> are
> > > you
> > > > just typing the hello_world-server.php in the browser directly/command
> > > line.
> > > > This is the output you should recieve if you aren't using a SoapObject
> to
> > > > access the server. Let me know if this helps
> > > >
> > > > - Brad
> > > >
> > > > --- Jean-Charles Preaux <jc....@wa...> wrote:
> > > > > Hello
> > > > > i try today to use PHP-SOAP extension.
> > > > > it compiled well (i use php-4.2.0 and apache-1.3.24, libxml2-2.4.19,
> > > > > expat-1.95.2, Sablot-0.90)
> > > > > i try the "hello world-server.php" script and the output is :
> > > > > <!--
> > > > > <?xml version="1.0" encoding="UTF-8" ?>
> > > > > - <SOAP-ENV:Envelope
> > > > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > > > > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > > > > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> > > > > - <SOAP-ENV:Body>
> > > > > - <SOAP-ENV:Fault xsi:type="SOAP-ENC:Struct">
> > > > > <faultstring xsi:type="xsd:string">PHP-SOAP requires
> > > > > 'always_populate_raw_post_data' to be on please check your php.ini
> > > > > file</faultstring>
> > > > > <faultcode xsi:type="xsd:string">SOAP-ENV:Server</faultcode>
> > > > > </SOAP-ENV:Fault>
> > > > > </SOAP-ENV:Body>
> > > > > </SOAP-ENV:Envelope>
> > > > > -->
> > > > > then i create a php.ini with :
> > > > > always_populate_raw_post_data = 1
> > > > > but the new output is :
> > > > > <!--
> > > > > <?xml version="1.0" encoding="UTF-8" ?>
> > > > > - <SOAP-ENV:Envelope
> > > > > xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
> > > > > SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > > > > xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
> > > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > > > > xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> > > > > - <SOAP-ENV:Body>
> > > > > - <SOAP-ENV:Fault xsi:type="SOAP-ENC:Struct">
> > > > > <faultstring xsi:type="xsd:string">Couln't find
> > > > > HTTP_RAW_POST_DATA</faultstring>
> > > > > <faultcode xsi:type="xsd:string">SOAP-ENV:Server</faultcode>
> > > > > </SOAP-ENV:Fault>
> > > > > </SOAP-ENV:Body>
> > > > > </SOAP-ENV:Envelope>
> > > > > -->
> > > > > i don't understand , have i made a mistake ?
> > > > > thanks
> > > > > Jean-Charles Preaux
> > > > > http://analogx.dyndns.org
> > > >
> > > >
> > > > __________________________________________________
> > > > Do You Yahoo!?
> > > > Yahoo! Health - your guide to health and wellness
> > > > http://health.yahoo.com
> > >
> >
> >
> > __________________________________________________
> > Do You Yahoo!?
> > Yahoo! Health - your guide to health and wellness
> > http://health.yahoo.com
> >
> > _______________________________________________________________
> >
> > Have big pipes? SourceForge.net is looking for download mirrors. We supply
> > the hardware. You get the recognition. Email Us: ban...@so...
> > _______________________________________________
> > Phpsoaptoolkit-development mailing list
> > Php...@li...
> > https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
>
>
> _______________________________________________________________
>
> Have big pipes? SourceForge.net is looking for download mirrors. We supply
> the hardware. You get the recognition. Email Us: ban...@so...
> _______________________________________________
> Phpsoaptoolkit-development mailing list
> Php...@li...
> https://lists.sourceforge.net/lists/listinfo/phpsoaptoolkit-development
__________________________________________________
Do You Yahoo!?
Yahoo! Health - your guide to health and wellness
http://health.yahoo.com
|