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])
?>
SoapServer::setClass
(PHP 5 >= 5.0.1)
SoapServer::setClass — Configure la classe qui sera utilisée pour gérer les requêtes SOAP
Description
Exporte toute les méthodes de la classe spécifiée.
SoapServer::setClass() configure une classe qui servira de gestionnaire aux requêtes SOAP. L'objet pourra alors être rendu persistant à travers les requêtes pour une session PHP, avec la méthode SoapServer::setPersistence().
Liste de paramètres
-
class_name -
Le nom de la classe exportée.
-
args -
Ces paramètres optionnels seront passé par défaut au constructeur de la classe, durant la phase de création de l'objet.
Valeurs de retour
Aucune valeur n'est retournée.
Voir aussi
- SoapServer::SoapServer() - Constructeur SoapServer
- SoapServer::addFunction() - Ajoute une ou plusieurs fonctions qui vont gérer les requêtes SOAP
- SoapServer::setPersistence() - Active le mode persistant de SoapServer
christiaan at oakfox dot net ¶
4 years ago
Ariz Jacinto ¶
4 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();
?>
funky2step at gmail dot com ¶
1 year 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)
{
}
}
?>
