Отключить собственный класс Soap в PHP5 и использовать nuSoap? - PullRequest
3 голосов
/ 10 марта 2010

На прошлой неделе я потратил на разработку кода для подключения к веб-службе с помощью библиотеки nuSoap. Я просто развернул код в рабочей среде, но сразу начал получать ошибки, которых раньше не видел. Я проследил проблему до строки кода, которая пытается создать экземпляр нового объекта soapclient. Оказывается, что в обеих библиотеках есть класс с именем soapclient, а тот, который создается в рабочей среде, взят из собственной библиотеки Soap, а не из библиотеки nuSoap, которую я включаю. Как я могу отключить встроенную функцию Soap и строго придерживаться nuSoap?

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

С выходом PHP5 в расширение php_soap включен класс soapclient. NuSOAP переименовал свой класс в nusoap_client. Если ваша копия NuSOAP актуальна, вы сможете ее использовать. Это не отключает расширение php_soap, но должно позволить вам использовать класс NuSOAP без дальнейшего конфликта.

2 голосов
/ 10 марта 2010

Ах, неважно. NuSoap 0.7.3 (который я использовал) изменил имя класса на nusoap_client специально, чтобы избежать этого конфликта. Они также включали проверку обратной совместимости, которая связывала этот класс с «soapclient», если родное расширение Soap не было загружено, поэтому я не уловил его на своей машине для разработки.

Ссылка: http://code.google.com/p/nusoap-for-php5/issues/detail?id=2

0 голосов
/ 10 марта 2010

Я не виню вас, встроенная библиотека мыла для PHP полна и вызывает полное смущение, особенно по сравнению с веб-сервисами python.

Один из вариантов - удалить расширение во время компиляции:

Это расширение доступно только если PHP был настроен с --enable-soap.

Другой вариант - переименовать мыльный клиент в nuSoap. Поиск и замена Notepad ++ работает хорошо, но вам действительно не нужно этого делать.

...