Php/docs/yar.examples
范例
Example #1 Yar Server示例
<?php/* 假设这个页面的访问路径是: 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 #3 Yar Client示例
<?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));?>
以上例程的输出类似于:
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示例
<?phpfunction callback($ret, $callinfo) { echo $callinfo['method'] , " result: ", $ret , "\n";}/* 注册一个异步调用 */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");/* 发送所有注册的调用, 等待返回, 返回后Yar会调用callback回掉函数 */Yar_Concurrent_Client::loop();?>
以上例程的输出类似于:
mul result: 4 sub result: 1 add result: 3