Ejemplo #1 Ejemplo de servidor de Yar
<?php
class Operator {
public function add($a, $b) {
return $this->_add($a, $b);
}
public function sub($a, $b) {
return $a - $b;
}
public function mul($a, $b) {
return $a * $b;
}
protected function _add($a, $b) {
return $a + $b;
}
}
$servidor = new Yar_Server(new Operator());
$servidor->handle();
?>
Ejemplo #2 Acceder al servidor desde el navegador (petición GET)
El resultado del ejemplo sería algo similar a:
Ejemplo #3 Ejemplo de cliente de Yar
<?php
$cliente = new yar_client("http://example.com/operator.php");
var_dump($cliente->add(1, 2));
var_dump($cliente->call("add", array(3, 2)));
var_dump($cliente->_add(1, 2));
?>
El resultado del ejemplo sería algo similar a:
int(3) int(5) PHP Fatal error: Uncaught exception 'Yar_Server_Exception' with message 'call to api Operator::_add() failed' in *
Ejemplo #4 Ejemplo de cliente concurrente de Yar
<?php
function callback($ret, $callinfo) {
echo $callinfo['method'] , " result: ", $ret , "\n";
}
Yar_Concurrent_Client::call("http://example.com/operator.php", "add", array(1, 2), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "sub", array(2, 1), "callback");
Yar_Concurrent_Client::call("http://example.com/operator.php", "mul", array(2, 2), "callback");
Yar_Concurrent_Client::loop();
?>
El resultado del ejemplo sería algo similar a:
mul result: 4 sub result: 1 add result: 3