WSDL et SOAP: objet de Retour avec des méthodes
Est-il un moyen de revenir dans la fabrication de savon un objet avec ses méthodes? Si je retourne xsd:structure en WSDL je ne reçois que les propriétés de l'objet, mais je ne peux pas utiliser l'une des méthodes.
Par exemple
class person
{
var $name = "My name";
public function getName()
{
return $this->name;
}
}
Ainsi, après l'extraction de l'objet:
$client = new SoapClient();
$person = $client->getPerson();
echo $person->getName(); //Return "My Name";
Grâce.
OriginalL'auteur keepwalking | 2011-09-27
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas faire cela avec
SOAP
. Fondamentalement, votre classe PHP est mappé à une structure de données XML est défini par un schéma XML. Cette cartographie comprend seulement les propriétés et ne peuvent pas inclure de code exécutable.SOAP
est conçu pour l'interopérabilité et, naturellement, vous ne pouvez pas partager du code entre, disons, PHP et Java ou .NET. Sur le côté de réception de votre structure de données XML est transformé en une structure de données de client du langage de programmation (une classe PHP si vous utilisezSoapClient
ou unC#
classe si vous utilisezC#
). Comme la structure de données XML transporte uniquement des informations de propriété de la partie exécutable de l'origine de classe ne peut pas être reconstruit.Mais il y a une chose qui peut aider si le SAVON serveur et le client de connexion ont accès à la même base de code (ce qui signifie que les mêmes classes). Vous pouvez définir un mappage entre un
XML
type et unPHP
classe dans leSoapClient
'constructeur à l'aide de laclassmap
-option. Cela permetSoapClient
pour mapper des données XML structures réel des classes PHP - étant donné le fait que le serveur et le client d'avoir accès à la définition de la classe. Cela vous permet d'utiliser des méthodes sur le côté de réception de laSOAP
communication.La
WSDL
pourrait ressembler (copié à partir de l'une desSoapClient
tests et adaptée):L'État de SOAP en PHP pourrait être intéressant si vous êtes en train de faire
SOAP
en PHP.Vous souhaitez utiliser des méthodes sur le côté client, mais veulent rester caché? Je ne pense pas que cela ne fonctionne pas du tout...
Si j'utilise setClass dans le SoapServer je peux utiliser caché méthodes 🙂 de toute façon je peux faire une solution de contournement en retour d'un client soap objet.
OriginalL'auteur Stefan Gehrig