BatchRequest SOAP
JindrichPilar opened this issue · 1 comments
Pracovni myslenka je podporovat batch request. Coz se da udelat pres cURL.
Samozrejme by zustala moznost synchroniho spracovani. I jako fallback kdy neni cURL k dispozici.
Jako transportni vrstva by se dala pouzit https://github.com/guzzle/guzzle
Jelikoz Guzzle by nevalidoval pozadavek vuci WSDL, dalo by se pouzit https://github.com/wsdl2phpgenerator/wsdl2phpgenerator
Navrh implementace:
Pro co nejvetsi kompabilitu s klasickymi requesty by $webService->call('function' $args);
vracela proxy object, do ktereho by knihovna dodatecne dohrala data. Dohrani dat by se spoustelo pri prvni ctenim z nektereho proxy objektu. Takze by to vypadalo asi takto:
$userService = $skautis->User;
$a = $user->call('UserDetail');
$b = $user->call('UserDetail');
$c = $user->call('UserDetail');
$d = $user->call('UserDetail');
// Doted by se nic nedelo, jen prazdne objekty cekajici na naplneni
// Prvni pristup
// Vezme vsechny definovane pozadavky, provede batch request a nahraje do vsech objektu data
// Smaze frontu pozadavku na Skautis
$id = $d['id'];
Vnitrni implementace pomoci Guzzle batch request
Aby se dalo detekovat pristup k datum musela by metoda call
z WebServiceInterface
vracet nejaky objekt se kterym so dobre pracuje a zaroven se na nem da cekat na pristup. Vhodna by byla StdClass
.