Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
Новости
Последние поступления
Книжный магазин
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



SOAP, генерация прокси класса

Раздел: Programming / PHP @ 18.05.2009 | Ключевые слова: soap php протокол обмена версия для печати

Автор: highw
Источник: habrahabr

Преамбула:

SOAP — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался, в основном, для реализации удалённого вызова процедур (RPC), а название было аббревиатурой: Simple Object Access Protocol — простой протокол доступа к объектам. Сейчас протокол используется для обмена произвольными сообщениями в формате XML, а не только для вызова процедур. Официальная спецификация последней версии 1.2 протокола никак не расшифровывает название SOAP. SOAP является расширением протокола XML-RPC.


Итак, делаем proxy-class


Так вот, столкнулся с задачей, где нужно использовать вебсервис.
Вообще говоря разработчики рнр5 максимально упростили работу с сервисом.
Ввели SoapClient и использовать проще простого.
<?
$cl = new SoapClient("wsdl");
$cl->functionname();
...

Все ничего, но надо знать имена функции это раз.
Второе, программируя в какой-нить IDE есть автокомлит, который показывает функции класса
Я начал копать в сторону этого, потому как на память помнить функции глупо.

Но к сожалению ничего не нашел.
Порылся в pear но там по сути нет ничего чтобы мне помогло.

В итоге решил написать скрипт, который бы на основании заданного WSDL создает класс с методами, параметрами и phpDoc для удобства.

Для примера задаем простейший WSDL файл и посмотри как бы делали просто и через генератор класса.

Обычно мы пишем (пример взят отсюда):
<?
$cl = new SoapClient("http://www.freewebs.com/jimmy_cheng/CurrencyExchangeService.wsdl");
echo $cl->getRate("us", "russian");
?>


Удобно, не вопрос. Но узнать ВСЕ функции WSDL тяжко.

А теперь прогоним этот же wsdl и получим класс.
В итоге получили:

Удобно? Да. Причем эта фича есть давно в VS.

А вот для примера задаем WSDL для проверки валидности email
$WSDL = "http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx?wsdl";

а в IDE получился вот такой комплит


Не знаю как вам, а мне этой фичи нехватает.

Уважаемый ALL, подскажите, возможно я создаю велосипед, но я не встречал создания прокси-класса на РНР? Есть ли такой инструмент?
Потому что на данный момент приходится доделывать скрипт и придумывать костыли чтобы все работало хорошо.

Спасибо за внимание, жду ответов — Имеет ли смысл двигаться в этом направлении? или уже есть такое?
Кросспост

UPD WSDL ws.cdyne.com/emailverify/Emailvernotestemail.asmx?wsdl содержит больше функций, я знаю, но в силу того, что РНР не поддерживает перегрузку функций, то в данный момент я игнорирую повторы. В дальнейшем введу fucn1, func2, func3 которые будут по сути func но с разными параметрами. Спасибо за понимание

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Programming / PHP


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.