12.1 Poznámky SOAP klienta v PHP
DOKUMENTACE PHP
RŮZNÉ ZPŮSOBY ZÁPISU VOLÁNÍ SOAP METOD
- Použití metody soapCall, kdy se předává v argumentech metody název volané SOAP metody a její vstupní parametry v poli:
$input_params = array(
'filter' => array(
'city'=>'Praha',
),
'fulltext'=>NULL,
'number' => 123456789,
);
$soapClient->__soapCall('getCustomerList', $input_params); - Zjednodušené volání SOAP metody, kde se pak vstupní parametry předávají jako u běžné metody a v pořadí, ve kterém je očekává:
$soapClient->getCustomerList(array('city'=>'Praha'), NULL, 123456789);
DODRŽENÍ SPRÁVNÉHO POŘADÍ VSTUPNÍCH PARAMETRŮ
- Pořadí vstupních parametrů na nejvyšší úrovni musí být stejné jako je ve WSDL.
- Např. při použití metody getCustomerList nelze prohodit pozici filter a number.
Pokud chcete filtrovat podle čísla a města, nelze vynechat parametr fulltext a vstupní parametry se musí nastavit takto:
$input_params = array(
'filter' => array(
'city'=>'Praha',
),
'fulltext'=>NULL,
'number' => 123456789,
);
STRUKTURA VRÁCENÝCH DAT
- Jestliže je v odpovědi serveru ocekáváno v nekterém parametru pole, tak v případe že je v poli pouze jeden prvek, SoapClient prevede tento prvek na objekt. Toto chování klienta lze upravit nastavením SOAP_SINGLE_ELEMENT_ARRAYS.
$soapClient = new SoapClient($wsdl, array('features' =>
SOAP_SINGLE_ELEMENT_ARRAYS));
HLEDANÍ CHYB
- Pří ladení klienta v php je velice užitečné použít metody getLastRequest a getLastResponse. Tyto metody vám umožní zobrazit XML žádost nebo XML odpověď, kterou posíláte nebo přijímáte od serveru a následně ji porovnat se vzorem uvedeným v dokumentaci u jednotlivých metod.
PROBLÉM S KOMUNIKACÍ PŘES HTTPS
Je nutné, aby na klientovy byla nainstalována verze OpenSSL >= 1.0.0