Documente Academic
Documente Profesional
Documente Cultură
function getProd($category) {
if ($category == "books") {
return join(",", array(
"The WordPress Anthology",
"PHP Master: Write Cutting Edge Code",
"Build Your Own Website the Right Way"));
}
else {
return "No products listed under that category";
}
}
• Intr-un scenariu real functia getProd() poate cauta cartile intro baza de date,
dar aici am returnat un mesaj, pentru a ne concentra pe mecanismul SOAP.
• Pentru a adauga mai multa functionalitate serverului va trebui sa definim
functii aditionale (sau metode ale claselor) si sa le inregistram ca mai inainte.
<?php
require_once "nusoap-0.9.5/lib/nusoap.php";
$client = new
nusoap_client("http://localhost/PhpProject1/productlist.php");
$error = $client->getError();
if ($error) {
echo "<h2>Constructor error</h2><pre>" . $error . "</pre>";
}
echo "<h2>Request</h2>";
echo "<pre>" . htmlspecialchars($client->request, ENT_QUOTES) .
"</pre>";
echo "<h2>Response</h2>";
echo "<pre>" . htmlspecialchars($client->response, ENT_QUOTES) .
"</pre>";
<definitions>
<types>
........
</types>
<message>
<part></part>
</message>
<portType>
.......
</portType>
<binding>
....
</binding>
<service>
....
</service>
</definitions>
• Elementul root al fisierului WSDL este elementul “definitions”.
• Acest lucru are sens deoarece un fisier WSDL reprezinta definitia unui
serviciu web.
• Elementul types descrie tipurile de date utilizate, care in cazul WSDL, este
XML schema.
• Elementul messages contine definitiile elementelor ce reprezinta datele
serviciului.
• Elementul portType defineste operatiile care pot fi executate cu serviciul
web si mesajele de cerere si raspuns care sunt utilizate.
• Elementul binding contine protocolul si specificarea formatului datelor
pentru un portType particular.
• Elementul service defineste adresa serviciului.
• In WSDL 2.0 terminologia este putin modificata. De exemplu portType se
numeste acum Interface.
Construirea unui fisier WSDL
• Este dificil de creat fisire WSDL manual, dar NuSOAP poate genera
fisier WSDL.
function getProd($category) {
if ($category == "books") {
return join(",", array(
"The WordPress Anthology",
"PHP Master: Write Cutting Edge Code",
"Build Your Own Website the Right Way"));
}
else {
return "No products listed under that category";
}
}
$server = new soap_server();
$server->configureWSDL("productlist", "urn:productlist");
$server->register("getProd",
array("category" => "xsd:string"),
array("return" => "xsd:string"),
"urn:productlist",
"urn:productlist#getProd",
"rpc",
"encoded",
"Get a listing of products by category");
?>
• Prima modificare este adaugarea unui apel al functiei configureWSDL();