Zend_XmlRpc
Dawno nic nie pisałem, więc teraz kolejny wpis z cyklu opisującego możliwości
Zend Frameworka czyli Zend_XmlRpc (Remote Procedure Call). Zamierzam opublikować jeszcze kilka wpisów z tej serii, do czasu kiedy nie przesiądę się na symfony (z czym noszę się już od kilku miesięcy).
Co to jest XMLRPC ?
Jest to zdalne wywoływanie procedur w którym dane wymieniane są w formacie xml za pomocą protokołu Http.
Implementacja jak zwykle w przypadku ZF jest dosyć prosta i bardzo dobrze opisana w dokumentacji. Do uruchomienia xmlrpc będziemy potrzebowali dwóch skryptów. Serwera
i klienta.
Serwer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php // Tworzymy serwer $server = new Zend_XmlRpc_Server(); // Rejestrujemy klasę i przypisujemy do niej namespace 'srv' $server->setClass('My_Service_Class', 'srv'); echo $server->handle(); // Tworzymy testową klasę obsługująca serwer class My_Service_Class { public function test($param1) { return "test " . $param1; } } ?> |
I już mamy działający serwer który będzie przyjmował od nas zapytania xmlrpc. Zapisujemy go w pliku xmlrpc.php i umieszczamy na serwerze z którym chcemy się komunikować.
Teraz potrzebujemy jeszcze klienta.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php $param1 = 1; try { // Tworzymy klienta $client = new Zend_XmlRpc_Client('http://testserwer.pl/xmlrpc.php'); //wywołujemy zdalną metodę i przekazujemy parametr $result = $client->call('srv.test', array($param1)); } catch (Zend_XmlRpc_Client_HttpException $e) { echo $e->getCode(); echo $e->getMessage(); } // powinno wyświetlić "test 1" echo $result; ?> |
Przykład jest dosyć prosty ale możemy go rozbudować w zależności od naszych potrzeb. Oczywiście musimy posiadać zainstalowaną obsługę xmlrpc na serwerze.
Powiązane wpisy: