Комментарии 11
Простите, а для php нет кодогенераторов, которые бы позволяли на основании wsdl сразу получить нормальный типизованный клиент?
0
На предмет этого даже не приходило в голову гуглить. Мне это было не нужно, т.к. передо мной стояла задача не только получить данные, но и обработать их. Полное решение я не стал выкладывать, т.к. оно специфично, и для читающих сей пост — абсолютно не нужно.
А если необходимо просто получить данные, не обрабатывая, или обрабатывая их на другом уровне — то и расширение класса не нужно, хватит и стандартного, хмм.
А если необходимо просто получить данные, не обрабатывая, или обрабатывая их на другом уровне — то и расширение класса не нужно, хватит и стандартного, хмм.
0
Я не очень понимаю, как из задачи обработать данные (которая, заметим, есть почти всегда при взаимодействии с чужим сервисом) вырастает ненужность нормального типизованного клиента (который бы позволил вам, например, не передавать wsdl при каждом создании клиента, и не возиться с нетипизованными параметрами).
0
Я писал это расширение в первую очередь из-за обработки внешних получаемых параметров, и только во-вторую — для удобства использования.
А по-поводу:
Извините — погорячился. Я неправ.
А по-поводу:
А если необходимо просто получить данные, не обрабатывая, или обрабатывая их на другом уровне — то и расширение класса не нужно, хватит и стандартного, хмм.
Извините — погорячился. Я неправ.
0
Понимаете ли, вот этот код:
Должен писать кодогенератор, а не человек.
function getPersonaByCompany($companyName, $regionCode) { $dataSoap = $this->FindByCompany(array("CompanyName"=>$companyName, "RegionCode"=>$regionCode)); return $dataSoap->FindByCompanyResult; }
Должен писать кодогенератор, а не человек.
0
Возможно, но человек должен хотя-бы раз написать такой код сам, чтобы знать и понимать.
Это конечно круто, когда за тебя все делает программа, но все же необходимо и самому что-то уметь
Это конечно круто, когда за тебя все делает программа, но все же необходимо и самому что-то уметь
-1
Один раз написать — возможно. Использовать это в продуктиве — незачем.
+1
И чем данное решение хуже чем решение кодогенератора? Действительно, сейчас нет времени качать последний и смотреть отличия. Или дело только в автоматизации?
Но это статья для новичков, возможно следующая статья и будет о чем либо подобном.
Но это статья для новичков, возможно следующая статья и будет о чем либо подобном.
-1
задем делать винегрет внутри объекта? используйте паттерн адаптер
0
У нас был для работы через соап на пхп была сделана обертка, но подход при котором создавались отдельные методы для работы с каждым веб метом функции, аля:
function getPersonaByCompany($companyName, $regionCode) {
$dataSoap = $this->FindByCompany(array(«CompanyName»=>$companyName, «RegionCode»=>$regionCode));
…
мы отбросили спустя определенное время так как без каких либо бонусов это порождало двойную работу когда при создании или изменении soap-вебметода приходилось вносить доп. изменения и на стороне клиентского приложения php
Вместо это у нас небольшая обертка с обработкой ошибок, различными способами авторизации еще другими «плюшками», а запрос если вкратце выполняется вот так:
…
$request = $client->$method($data);
…
Это позволяет написав один раз обертку, далее использовать его как черный ящик, единственные изменения которые в него вносились это было подключение новых способов авторизации, но не написание новых методов…
function getPersonaByCompany($companyName, $regionCode) {
$dataSoap = $this->FindByCompany(array(«CompanyName»=>$companyName, «RegionCode»=>$regionCode));
…
мы отбросили спустя определенное время так как без каких либо бонусов это порождало двойную работу когда при создании или изменении soap-вебметода приходилось вносить доп. изменения и на стороне клиентского приложения php
Вместо это у нас небольшая обертка с обработкой ошибок, различными способами авторизации еще другими «плюшками», а запрос если вкратце выполняется вот так:
…
$request = $client->$method($data);
…
Это позволяет написав один раз обертку, далее использовать его как черный ящик, единственные изменения которые в него вносились это было подключение новых способов авторизации, но не написание новых методов…
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Расширяем класс работы с SOAP на PHP