Home > PHP > Zend_XmlRpc

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:

Kategorie:PHP Tagi:, , ,

agencja reklamowa lublin ślub i wesele senniki