Как создать SOAP-сервис с помощью ZF2?

Что не так в моем коде? Как создать SOAP-сервис для моего класса Math?
Обратите внимание, что я не упоминал пространство имен для Math.php, потому что, если бы я сделал это, я получил class Math does not exist сообщения в браузере. Без упоминания пространства имен класса Math, как создать объект Math в indexAction ().
Пожалуйста, представьте мне, как создать свой первый wsdl для класса Math.

Структура папок
модуль
–Мыло
—- контроллер
——> IndexController.php
—-Сервисы
——> Math.php

IndexController.php

 include_once __DIR__ . '/../Services/Math.php' class IndexController extends AbstractActionController { private $_URI = "http://zf2.services/soap"; public function indexAction() { $server = new Server(null, array('uri' => $this->_URI)); $server->setClass('Math'); //$server->setObject(new Math()); $server->handle(); } } 

Math.php

 //namespace Soap\Services; class Math { /** * Method * @return string */ public function greeting() { return 'Hello world'; } } 

Результат XML

 <SOAP-ENV ..> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>sender</faultcode> <faultstring>Invalid XML</faultstring> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV> 

Вы правы в отношении пространства имен, написанного в Math.php .

Попробуйте это в IndexController.php –

 include_once __DIR__ . '/../Services/Math.php'; class IndexController extends AbstractActionController { private $_URI = "http://zf2.services/soap"; public function indexAction() { $autodiscover = new \Zend\Soap\AutoDiscover(); $autodiscover->setClass('Math') ->setBindingStyle(array('style' => 'document')) ->setUri($this->_URI); header('Content-type: application/xml'); echo $autodiscover->toXml(); exit(); } } 

Я пробовал, и все работает нормально.