Обрабатывать точки в именах мыла с помощью переполнения стека

У меня есть wsdl, который при открытии в soapui показывает методы, названные таким образом:

  • DTL.GP.03.RC.Method1
  • DTL.GP.04.RC.Method2
  • так далее

Я не могу найти способ использовать эти имена с PHP Soapclient. Точки в названиях испортят код. Кто-нибудь знает способ?

1

Решение

Увидеть http://php.net/manual/es/function.call-user-func.php. И __getFunctions возвращает список доступных функций SOAP.

Вот несколько примеров:

$client = new SoapClient(__DIR__."/helloservice.wsdl");
echo var_export($client->__getFunctions(), true);

$param1 = "nacho";

echo "eg 1\n";
echo call_user_func(array($client, "DTL.GP.03.RC.Method1"), $param1 /* , ... */)."\n";

echo "eg 2\n";
$method="DTL.GP.03.RC.Method1";
echo $client->$method($param1)."\n";

ВЫХОД:

array (
0 => 'string DTL.GP.03.RC.Method1(string $firstName)',
)eg 1
Hello nacho
eg 2
Hello nacho

Я пробовал это в PHP 5.5.27, но также работает в PHP 5.3.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]