<?php
class Soap12test {
    public 
$header;

    function 
echoOk($x) {
      return 
$x;
    }

    function 
echoString($inputString) {
        return 
$inputString;
    }

    function 
echoStringArray($inputStringArray) {
        return 
$inputStringArray;
    }

    function 
echoInteger($inputInteger) {
        return 
$inputInteger;
    }

    function 
echoIntegerArray($inputIntegerArray) {
        return 
$inputIntegerArray;
    }

    function 
echoFloat($inputFloat) {
        return 
$inputFloat;
    }

    function 
echoFloatArray($inputFloatArray) {
        return 
$inputFloatArray;
  }

    function 
echoStruct($x) {
      return 
$x;
    }

    function 
echoStructArray($x) {
      return 
$x;
    }

    function 
echoVoid() {
        return 
NULL;
    }

    function 
echoBase64($b_encoded) {
        return 
$b_encoded;
  }

    function 
echoDate($timeInstant) {
        return 
$timeInstant;
    }

    function 
echoHexBinary($hb) {
        return 
$hb;
    }

    function 
echoDecimal($dec) {
        return 
$dec;
    }

    function 
echoBoolean($boolean) {
        return 
$boolean;
    }

    function 
echoStructAsSimpleTypes ($struct) {
         return array(
'outputString'  => $struct->varString,
                      
'outputInteger' => $struct->varInt,
                      
'outputFloat'   => $struct->varFloat);
    }

    function 
echoSimpleTypesAsStruct($string$int$float) {
        return (object)array(
"varString" => $string,
                                                  
"varInt"    => $int,
                                               
"varFloat"  => $float);
    }

    function 
echoNestedStruct($struct) {
        return 
$struct;
    }

    function 
echo2DStringArray($ary) {
        return 
$ary;
    }

    function 
echoNestedArray($ary) {
        return 
$ary;
    }

    function 
countItems($input) {
        return 
count($input);
    }

    function 
isNil($input) {
        return 
is_null($input);
    }

    function 
returnVoid() {
    }

    function 
emptyBody() {
    }

    function 
requiredHeader($x) {
        
$this->header $x;
    }

    function 
echoHeader() {
      return 
$this->header;
    }

    function 
echoResolvedRef($ref) {
      return 
$ref->RelativeReference->base.$ref->RelativeReference->href;
    }

    function 
validateCountryCode($code) {
        if (
strlen($code) != 2) {
          return new 
SoapFault("Client""Not a valid country code"NULLNULLNULL, new SoapHeader("http://example.org/ts-tests""validateCountryCodeFault""Country code must be 2 letters."));
        } else {
            return 
"OK";
        }
    }

}

ini_set("soap.wsdl_cache_enabled",0);
$server = new soapserver(dirname(__FILE__)."/soap12-test.wsdl", array('soap_version'=>SOAP_1_2,'actor'=>"http://example.org/ts-tests/C"));
$server->setClass("Soap12test");

$server->handle($HTTP_RAW_POST_DATA);
echo 
"ok\n";
?>