SoapServer::__construct

(PHP 5, PHP 7, PHP 8)

SoapServer::__construct β€” ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ SoapServer

ОписаниС

public function 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()
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
13
Anonymous ΒΆ
14 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