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

search for in the

SoapServer::setObject> <SoapServer::handle
[edit] Last updated: Sun, 26 May 2013

view this page in

SoapServer::setClass

(PHP 5 >= 5.0.1)

SoapServer::setClassDefine la clase que controla las peticiones SOAP

Descripción

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

Exporta todos los métodos de una clase específica.

El objecto puede ser persistente durante un determinado período de sesiones PHP con el método SoapServer::setPersistence().

Parámetros

class_name

Nombre de la clase exportada.

args

Estos parámetros opcionales serán pasados al constructor de la clase por defecto durante la creación del objeto.

Valores devueltos

No devuelve ningún valor.

Ver también



SoapServer::setObject> <SoapServer::handle
[edit] Last updated: Sun, 26 May 2013
 
add a note add a note User Contributed Notes SoapServer::setClass - [4 notes]
up
0
christiaan at oakfox dot net
4 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
0
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();
?>
up
-1
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)
  {

  }
}

?>
up
-3
Matt
3 years ago
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"

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