downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

SoapServer::setObject> <SoapServer::handle
[edit] Last updated: Fri, 23 Mar 2012

view this page in

SoapServer::setClass

(PHP 5 >= 5.0.1)

SoapServer::setClassSets the class which handles SOAP requests

Opis

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

Exports all methods from specified class.

The object can be made persistent across request for a given PHP session with the SoapServer::setPersistence() method.

Parametry

class_name

The name of the exported class.

args

These optional parameters will be passed to the default class constructor during object creation.

Zwracane wartości

Nie jest zwracana żadna wartość.

Zobacz też:



SoapServer::setObject> <SoapServer::handle
[edit] Last updated: Fri, 23 Mar 2012
 
add a note add a note User Contributed Notes SoapServer::setClass
funky2step at gmail dot com 24-Nov-2011 06:54
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)
  {

  }
}

?>
Matt 03-Jul-2009 02: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 03-May-2009 10: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 04-Dec-2008 09: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();
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites