Невозможно сгенерировать XML через WSDLDocument.php (PHP SOAP)

У меня есть простое взаимодействие 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"), но нет сигнала о моих функциях и их параметрах ...

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
183
1

Ответы 1

Я НАШЕЛ ПРОБЛЕМУ! Если функция является общедоступной статический, XML просто не будет отображаться (не знаю почему, но это все). Просто измените их на публичные.

Другие вопросы по теме