Я пытаюсь реализовать WebService с использованием SOAP в рамках Symfony 2. На стороне сервера я устанавливаю класс на мой сервер (метод setClass()), потому что мне нужно сделать больше операций над одним экземпляром класса. Если я использовал SetObject для soapCalls, она работает хорошо,SOAP-сервер в проекте Symfony 2
use path\to\Test;
public function indexAction()
{
$server = new \SoapServer(null, array('uri' => "http://test-uri.cz/"));
$server->setObject($this->get('my_service'));
$response = new Response();
$response->headers->set('Content-Type', 'text/xml');
ob_start();
$server->handle();
if (ob_get_length() > 0) {
$response->setContent(ob_get_clean());
}
return $response;
}
но Безразлично `работа с методом setClass.
use path\to\Test;
public function indexAction()
{
$server = new \SoapServer(null, array('uri' => "http://test-uri.cz/"));
$server->setClass('Test');
$response = new Response();
$response->headers->set('Content-Type', 'text/xml');
ob_start();
$server->handle();
if (ob_get_length() > 0) {
$response->setContent(ob_get_clean());
}
return $response;
}
Может ли кто-нибудь дать мне какие-либо намеки?
Я использую setObject тоже. Ваша служба - это экземпляр класса, поэтому объект ... Я думаю, мы можем использовать setClass, если ваш диспетчер мыла не имеет какой-либо сложной зависимости, поскольку служба может иметь ... – AlterPHP
Но setObject создает новый экземпляр класса, когда вы вызовите метод __soapCall. И Im тестирует setClass на каком-то простом классе, который не имеет зависимостей и содержит простой метод. Поэтому проблема с сложным классом не может быть проблемой. – gavec
Я думаю, что он НЕ создает новый экземпляр, но использует существующий экземпляр (существующий объект)! setClass создает новый экземпляр. – AlterPHP