|
|
|
|
|
для: Unkind
(16.01.2008 в 14:16)
| | Это не функция, это запрос. Большинство из его параметров (как правило все) имеют значения по умолчанию. Более того, классу известен из WSDL файла и список параметров, и значения по умолчанию. Поэтому мне тем более непонятно почему разработчик должен выделывать подобные пируэты. А изменение списка параметров - ситуация нормальная. Все сервисы развиваются и изменяются.
В общем еще раз повторю вопрос: можно ли передавать параметры запроса выборочно? NuSOAP, который, по сравнению с этим классом является как бы устаревшим, это умеет.
Кстати, видел среди примеров такой синтаксис:
<?
$params->var1=data;
$params->var2=data;
$client->select($params);
|
Но такой синтаксис не работает. Точнее, использование SOAP метода вместо название метода класса работает нормально, а вот объект (и даже массив) вместо строки принимать не хочет. | |
|
|
|
|
|
|
|
для: Loki
(16.01.2008 в 13:53)
| | Не имел дело с данным классом, но в мануале же написано "mixed __soapCall ( string $function_name , array $arguments [, array $options [, mixed $input_headers [, array &$output_headers ]]] )" - второй агрумент это массив агрументов для какой-то функции function_name.
Ведь если у функции будет сменем список аргументов - то да, придется бегать и все исправлять. Это уже на бред, по-моему, не похоже. Хотя сам факт смены аргументов и их положения будет, конечно, ненормальным. | |
|
|
|
|
|
|
| Есть сабжевый класс в пятой версии. За отправку запроса серверу отвечает метод __soapCall, который в качестве параметров получает название soap-метода и массив параметров:
<?
$params=array(
'var1' => 'data',
'var2' => 'data',
'var3' => 'data');
$data=$client->__soapCall('select', $params);
|
что меня смущает: несмотря на то, что массив ассоциированный, метод его рассматривает как обычный. То есть берет элементы массива друг за другом и подставляет в запрос. Что из этого получается? Что если у меня два десятка параметров, а мне надо передать только последний параметр, то придется перед ним 19 раз поставить null. Более того, если на сервере в новой версии поменяется количество параметров или порядок их следования, то придется проверять все скрипты. Звучит как бред. Меня не оставляет ощущение, что где-то я разработчиков не очень понял. Тем более что тот же NuSOAP, насколько мне известно, адекватно воспринимает названия параметров.
В общем, вопрос такой: как правильно передавать в метод __soapCall параметры, чтобы потом не кусать локти? | |
|
|
|
|