Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > php5 и soap server


Автор: taron123 8.5.2007, 18:01
Код

     require('classes/CNews.php');
    require('classes/CStat.php');
    
         ini_set("soap.wsdl_cache_enabled", "0"); // отключаем кэширование WSDL
    // Enciende el servidor o despliega WSDL
    if (isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST') {
        $servidorSoap = new SoapServer('http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['PHP_SELF'].'?wsdl'
                    //, array('classmap' => array('Stat' => "CStat"))
                    );
        $servidorSoap->setClass('CStat');
        //$servidorSoap->setClass('СNews');
        //$servidorSoap->setClass(array('CStat', 'CNews'));
        if (!isset($HTTP_RAW_POST_DATA)){
            $HTTP_RAW_POST_DATA = file_get_contents('php://input');
        }
        $servidorSoap->handle($HTTP_RAW_POST_DATA);
    }
    else {
        require_once 'SoapDiscovery.class.php';
        // Crea el servidor de descubrimiento
        $disco = new SoapDiscovery(array('zBot'=>'CStat','zBillingBot2' => 'CNews'),'zBot');
        //$disco = new SoapDiscovery('CStat','zBot');
        header("Content-type: text/xml");
        if (isset($_SERVER['QUERY_STRING']) && strcasecmp($_SERVER['QUERY_STRING'],'wsdl')==0) {
            /*$handle = fopen('zBillingBot.wsdl', "w");
            $wsdl_xml = fwrite($handle, $disco->getWSDL());
            fclose($handle);*/
            echo $disco->getWSDL();
        }
        else {
            echo $disco->getDiscovery();
        }
    }


1) возможно ли использование в PHP5 такой встроенной штуки как генерация WSDL исходя из того как настроен SOAPServer?
    здесь юзается *.php
2) главный вопрос: можно ли использовать сервером несколько классов, а не один; также передачу структур и т.п.
в PEAR::SOAP всё супер но на PHP5 виснет апатч или ошибки разноовбразные
даже стандартные примеры не пашут "SOAP/examples/client.php"

средства использовались последние:
апач 2.2.4
пхп 5.2.2
PEAR ****

Автор: -=Ustas=- 8.5.2007, 23:51
Цитата(taron123 @  8.5.2007,  18:01 Найти цитируемый пост)
1) возможно ли использование в PHP5 такой встроенной штуки как генерация WSDL исходя из того как настроен SOAPServer?
    здесь юзается *.php

Не понял... 
Цитата(taron123 @  8.5.2007,  18:01 Найти цитируемый пост)
2) главный вопрос: можно ли использовать сервером несколько классов, а не один; также передачу структур и т.п.

Тем более не понял.


taron123, вопрос раскрой.

Автор: taron123 9.5.2007, 13:57
Цитата(-=Ustas=- @ 8.5.2007,  23:51)
Цитата(taron123 @  8.5.2007,  18:01 Найти цитируемый пост)
1) возможно ли использование в PHP5 такой встроенной штуки как генерация WSDL исходя из того как настроен SOAPServer?
    здесь юзается *.php

Не понял... 
Цитата(taron123 @  8.5.2007,  18:01 Найти цитируемый пост)
2) главный вопрос: можно ли использовать сервером несколько классов, а не один; также передачу структур и т.п.

Тем более не понял.
taron123, вопрос раскрой.

1) в модуле php_soap.dll(apache на WIN32)
есть функции создание веб-сервиса SOAPServer($wsdl)
так вот: можно ли встроенными стредствами сгенерировать этот WSDL файл?

2) WSDL создан для передачи и работы с объектами, а не только с простыми переменными
в классе SOAPServer есть метод SetClass($class)
если сделать так:
$serv->SetClass($class1);
$serv->SetClass($class2);
то $class1 не будет использоваться!!!

Есть ли способ для использования нескольких классов одним сервисом?

Автор: -=Ustas=- 9.5.2007, 21:38
taron123, если верить php.net, то по идее можно 
Код

<?php

class foo {
    function foo()
    {
    }
}
$server->setClass("foo");

class bar {
    function bar($x, $y)
    {
    }
}
$server->setClass("bar", $arg1, $arg2);

?> 

Автор: taron123 10.5.2007, 18:58
с этим ты прав
кривой всдл был кривой *(

короч узание пиер или зенд-студии >= 5.0
и вперёд
на веб серверах в основном стоит ПХП 5.0.4
а некоторые примеры того же ПИЕР используют рефлекшены
а в них в этом пхп куча недоделок
в 5.1.3 вроде глюков намного меньше

да и фиксов за версии с 5.0 до 5.2.2  ~2600
жуть

всем спасибо

-=Ustas=- *)

Автор: Kostuch 10.9.2007, 13:28
А можно рассказать как это у Вас получается создать SOAP сервер на PHP5 ? а то у меня вот тут в темке не получается чего то :( незнаю почему может поможете ? http://forum.vingrad.ru/forum/act-ST/f-271/t-171788/unread-1.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)