(PECL SDO >= 0.5.0)
SCA::getService — Obtient un proxy pour un service
Cette fonction est EXPERIMENTALE. Le comportement de cette fonction, son nom, et toute la documentation autour de cette fonction peut changer sans préavis dans une prochaine version de PHP. Cette fonction doit être utilisée à vos risques et périls.
Examine la cible, et initialise puis retourne un proxy approprié. Si la cible est un composant PHP local, le proxy retourné sera de type SCA_LocalProxy. Si la cible est un composant PHP distant, le proxy retourné sera de type SCA_SoapProxy.
target
Un chemin absolu ou relatif jusqu'au service cible, ou la description du service (e.g. an URL vers une script de service en json-rpc, un composant PHP, un fichier WSDL, etc.). Une chemin relatif, si spécifié, est résolu relativement à la position du script qui émet l'appel à getService(), et non relativement à include_path, ou le dossier de travail courant.
binding
L'interface à utiliser (i.e. le protocole) avec le service (e.g binding.jsonrpc pour un service json-rpc). Notez que certaines types de services peuvent être déduits du paramètre de cible (e.g. si l'URL de cible finit par .wsdl alors SCA va supposer qu'il faut utiliser binding.soap). Tout protocole qui peut être spécifié dans une annotation peut être spécifié dans ce paramètre. Par exemple, 'binding.soap' est équivalent à l'annotation '@binding.soap'.
config
Toute configuration supplémentaire pour le protocole (e.g. array('location' => 'http://example.org')). Toute configuration supplémentaire peut aussi être configurée dans une annotation. Par exemple, 'location' est équivalent à l'annotation '@location', pour configurer la destination du service SOAP.
Un objet SCA_LocalProxy ou SCA_SoapProxy.
Exemple #1 Exemple avec SCA::getService()
Cet exemple montre comment obtenir un proxy pour un service SOAP de email, décrit par EmailService.wsdl et situé sur http://example.org.
<?php
include 'SCA/SCA.php';
$service = SCA::getService('EmailService.wsdl', 'binding.soap', array('location' => 'http://example.org'));
$service->send(...);
?>
L'exemple ci-dessus va afficher :