PHP 8.1.0 Released!

SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__constructКонструктор SoapServer

Описание

public SoapServer::__construct(?string $wsdl, array $options = [])

Данный конструктор позволяет создавать объекты SoapServer в WSDL или не-WSDL режимах.

Список параметров

wsdl

Для использования SoapServer в режиме WSDL, укажите URI WSDL-файла. В противном случае укажите null и установите опцию uri равной пространству имён сервера.

options

Попытка установить версию SOAP по умолчанию (soap_version), внутреннюю кодировку (encoding) и URI отправителя (actor).

Опцию classmap можно использовать для сопоставления некоторых типов WSDL с классами PHP. Данная опция должна быть массивом с ключами равными типам WSDL и значениям равными именам классов PHP.

Опция typemap является массивом сопоставления типов. Массив с ключами type_name, type_ns (URI пространства имён), from_xml (callback-функция, принимающая один строковый параметр) и to_xml (callback-функция, принимающая один объект в качестве параметр).

Опция cache_wsdl задаётся одной из констант: WSDL_CACHE_NONE, WSDL_CACHE_DISK, WSDL_CACHE_MEMORY или WSDL_CACHE_BOTH.

Также есть опция features, которая задаётся одной из констант: SOAP_WAIT_ONE_WAY_CALLS, SOAP_SINGLE_ELEMENT_ARRAYS или SOAP_USE_XSI_ARRAY_TYPE.

опция send_errors может быть установлена в false для отправки общего сообщения об ошибке ("Internal error") вместо специального сообщения об ошибке, отправляемого в противном случае.

Примеры

Пример #1 Пример использования SoapServer::SoapServer()

<?php

$server 
= new SoapServer("some.wsdl");

$server = new SoapServer("some.wsdl", array('soap_version' => SOAP_1_2));

$server = new SoapServer("some.wsdl", array('actor' => "http://example.org/ts-tests/C"));

$server = new SoapServer("some.wsdl", array('encoding'=>'ISO-8859-1'));

$server = new SoapServer(null, array('uri' => "http://test-uri/"));

class 
MyBook {
    public 
$title;
    public 
$author;
}

$server = new SoapServer("books.wsdl", array('classmap' => array('book' => "MyBook")));

?>

Смотрите также

  • SoapClient::SoapClient()

add a note add a note

User Contributed Notes 1 note

up
11
Anonymous
9 years ago
// Workin Server with Client for localhost

// server.php

<?php
class MyClass {
  public function
helloWorld() {

    return
'Hallo Welt '. print_r(func_get_args(), true);
  }
}

try {
 
$server = new SOAPServer(
   
NULL,
    array(
    
'uri' => 'http://localhost/soap/server.php'
   
)
  );

 
$server->setClass('MyClass');
 
$server->handle();
}

catch (
SOAPFault $f) {
  print
$f->faultstring;
}

?>

// client.php:

<?php
$client
= new SoapClient(null, array(
     
'location' => "http://localhost/soap/server.php",
     
'uri'      => "http://localhost/soap/server.php",
     
'trace'    => 1 ));

echo
$return = $client->__soapCall("helloWorld",array("world"));
?>

// Hope you like it
To Top