Annotation of embedaddon/php/ext/soap/tests/classmap004.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: SOAP Classmap 4: encoding of objects with __get()
! 3: --SKIPIF--
! 4: <?php require_once('skipif.inc'); ?>
! 5: --FILE--
! 6: <?php
! 7: ini_set("soap.wsdl_cache_enabled",0);
! 8:
! 9: class A {
! 10: public $a;
! 11: function __construct($a){
! 12: $this->x = $a;
! 13: }
! 14: function __get($name) {
! 15: return @$this->a[$name];
! 16: }
! 17: function __set($name, $val) {
! 18: $this->a[$name] = $val;
! 19: }
! 20: function __unset($name) {
! 21: unset($this->a[$name]);
! 22: }
! 23: }
! 24:
! 25: class B extends A {
! 26: function __construct($a){
! 27: parent::__construct($a);
! 28: $this->y = $a + 1;
! 29: }
! 30: }
! 31:
! 32: function f(){
! 33: return new B(5);
! 34: }
! 35:
! 36: class LocalSoapClient extends SoapClient {
! 37:
! 38: function __construct($wsdl, $options) {
! 39: parent::__construct($wsdl, $options);
! 40: $this->server = new SoapServer($wsdl, $options);
! 41: $this->server->addFunction("f");
! 42: }
! 43:
! 44: function __doRequest($request, $location, $action, $version, $one_way = 0) {
! 45: ob_start();
! 46: $this->server->handle($request);
! 47: $response = ob_get_contents();
! 48: ob_end_clean();
! 49: return $response;
! 50: }
! 51: }
! 52:
! 53: $client = new LocalSoapClient(dirname(__FILE__)."/classmap003.wsdl",
! 54: array('classmap'=>array('A'=>'A','B'=>'B')));
! 55: print_r($client->f());
! 56: ?>
! 57: --EXPECT--
! 58: B Object
! 59: (
! 60: [a] => Array
! 61: (
! 62: [x] => 5
! 63: [y] => 6
! 64: )
! 65:
! 66: )
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>