PHP Doku:: Setzt eine Klasse die SOAP-Funktionen anbietet - soapserver.setclass.html

Verlauf / Chronik / History: (2) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzWeb ServicesSOAPThe SoapServer classSoapServer->setClass()

Ein Service von Reinhard Neidl - Webprogrammierung.

The SoapServer class

<<SoapServer->handle()

SoapServer::setObject>>

SoapServer->setClass()

(PHP 5 >= 5.0.1)

SoapServer->setClass() Setzt eine Klasse die SOAP-Funktionen anbietet

Beschreibung

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 gesetzt 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.

Beispiele

Beispiel #1 Beispiele

<?php

class foo {
    function 
foo()
    {
    }
}
$server->setClass("foo");

class 
bar {
    function 
bar($x$y)
    {
    }
}
$server->setClass("bar"$arg1$arg2);

?>


4 BenutzerBeiträge:
- Beiträge aktualisieren...
Matt
3.07.2009 17:25
As expected, using SoapServer::setClass() on a class with private or protected methods does not expose those methods.

Calling a private/protected method from the SoapClient causes this: E_ERROR "Call to protected method my_class::myPrivateMethod() from context"
christiaan at oakfox dot net
4.05.2009 13:21
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])

?>
Ariz Jacinto
5.12.2008 1:38
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();
?>
info at adaniels dot nl
7.03.2008 1:46
A method SoapServer::setObject($object) also exists. This is for some reason not documented.



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)