У меня есть простое взаимодействие сервера / клиента SOAP с классом Shop (shop.php), которое прокомментировано так:
<?php
/**
* Class Shop
* Objective: Handling my shop
*
* @author Me
*/
require_once('config.php');
include("product.php");
include("fruit.php");
class Shop{
/**
* Returns a string with family's products concatenated
*
* @param string $familyId
* @return string
*
*/
public static function getFamilyProducts($familyId){
Теперь я проверяю свой WSDLDocument.php рядом с моим классом (все файлы находятся вв ту же папку), и напишите мой WSDLgenerator.php:
<?php
require_once('shop.php');
require_once('WSDLDocument.php');
$url = "http://localhost/Shop/server.php";
$uri = "http://localhost/Shop";
$wsdl = new WSDLDocument( "Shop", $url, $uri );
echo $wsdl->saveXml();
?>
Мой сервер безупречно обслуживает моего клиента, но в любом случае, если вы хотите проверить:
<?php
require_once('shop.php');
$uri = 'http://localhost/Shop';
$server = new SoapServer(null, array('uri' => $uri));
$server -> setClass('Shop');
$server -> handle();
?>
КогдаЯ захожу на WSDLGenerator.php, он печатает «Цель магазина класса: работа с моим магазином», но не более того.Инспектор браузера получает имя класса и такие строки:
<wsdl:service name="Shop">
<wsdl:documentation>Class Shop Objective: Handling my shop
</wsdl:documentation>
...
Есть несколько вызовов Shop ("ShopPortType", "ShopBinding", "ShopPort"), но нет сигнала о моих функциях и их параметрах...