Php/docs/yar.examples

From Get docs

Examples

Example #1 Yar Server Example

<?php/* assume this page can be accessed by http://example.com/operator.php */class Operator {    /**     * Add two operands     * @param interge      * @return interge     */    public function add($a, $b) {        return $this->_add($a, $b);    }    /**     * Sub      */    public function sub($a, $b) {        return $a - $b;    }    /**     * Mul     */    public function mul($a, $b) {        return $a * $b;    }    /**     * Protected methods will not be exposed     * @param interge      * @return interge     */    protected function _add($a, $b) {        return $a + $b;    }}$server = new Yar_Server(new Operator());$server->handle();?>

Example #2 Access the server in borwser(GET request)

The above example will output something similar to:


Example #3 Yar Client Example

<?php$client = new yar_client("http://example.com/operator.php%22);/* call directly */var_dump($client->add(1, 2));/* call via call */var_dump($client->call("add", array(3, 2)));/* __add can not be called */var_dump($client->_add(1, 2));?>

The above example will output something similar to:


int(3)
int(5)
PHP Fatal error:  Uncaught exception 'Yar_Server_Exception' with message 'call to api Operator::_add() failed' in *

Example #4 Yar Concurrent Client Example

<?phpfunction callback($ret, $callinfo) {    echo $callinfo['method'] , " result: ", $ret , "\n";}/* register async call to remote services */Yar_Concurrent_Client::call("http://example.com/operator.php%22, "add", array(1, 2), "callback");Yar_Concurrent_Client::call("http://example.com/operator.php%22, "sub", array(2, 1), "callback");Yar_Concurrent_Client::call("http://example.com/operator.php%22, "mul", array(2, 2), "callback");/* sent all request and wait for response */Yar_Concurrent_Client::loop();?>

The above example will output something similar to:


mul result: 4
sub result: 1
add result: 3