PHP 5.4.33 Released

SoapServer->setClass()

(PHP 5 >= 5.0.1)

SoapServer->setClass()Setzt die Klasse, welche SOAP-Anfragen verarbeitet

Beschreibung

public void SoapServer::setClass ( string $class_name [, mixed $args [, mixed $... ]] )

Exportiert alle Methoden der angegebenen Klasse.

Das Objekt kann für eine gegebene PHP-Session mit Hilfe der SoapServer::setPersistence() Methode persistent gemacht werden.

Parameter-Liste

class_name

Name der zu exportierenden Klasse.

args

Die optionalen Parameter werden zur Laufzeit dem Standardkonstruktor der Klasse übergeben.

Rückgabewerte

Es wird kein Wert zurückgegeben.

Siehe auch

add a note add a note

User Contributed Notes 3 notes

up
1
christiaan at oakfox dot net
5 years ago
You can also retrieve object properties the following way while using __autoload($class_name).

<?php

# Start Session
session_start();

# Auto Load Class as Required
function __autoload($class_name)
{
    require_once
"/var/www/example/class/". $class_name. ".php";
}

//service

$_SESSION[_bogus_session_name] = unserialize($_SESSION[_bogus_session_name]);
$server = new SoapServer('service.wsdl');
$server->setClass("MyClass");
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
$server->handle();
$_SESSION[_bogus_session_name] = serialize($_SESSION[_bogus_session_name])

?>
up
1
Ariz Jacinto
5 years ago
If you want your SOAP client to be able to save and then retrieve the object properties, you need to set the SOAP server to be persistent by setting session.auto_start=0, invoking session_start(), and SoapServer->setPersistence(SOAP_PERSISTENCE_SESSION) in the following manner:

<?php
 
//set ini
 
ini_set("soap.wsdl_cache_enabled", 0);
 
ini_set("session.auto_start", 0);

 
//class file
 
require_once('MyClass.php');

 
//for persistent session
 
session_start();

 
//service
 
$server = new SoapServer('service.wsdl');
 
$server->setClass("MyClass");
 
$server->setPersistence(SOAP_PERSISTENCE_SESSION);
 
$server->handle();
?>
up
-5
funky2step at gmail dot com
2 years ago
When passing arguments to the default class constructor, make sure that you don't try and use the magic __construct method because that won't work.

<?php

class MyClass
{
  function
MyClass($arg1, $arg2)
  {

  }
}

// Not:

class MyClass
{
  function
__construct($arg1, $arg2)
  {

  }
}

?>
To Top