|
||||
Coverage | |||||||||||||
Classes | Functions / Methods | Lines | |||||||||||
Total |
|
0.00% | 0 / 1 |
|
80.00% | 4 / 5 | CRAP |
|
95.45% | 21 / 22 | |||
Rpc |
|
0.00% | 0 / 1 |
|
80.00% | 4 / 5 |
|
95.45% | 21 / 22 | ||||
initClient($params) |
|
100.00% | 1 / 1 | 1 |
|
100.00% | 2 / 2 | ||||||
call($method, $params) |
|
100.00% | 1 / 1 | 1 |
|
100.00% | 1 / 1 | ||||||
rpc_call ($_data = null) |
|
100.00% | 1 / 1 | 3 |
|
100.00% | 12 / 12 | ||||||
initServer($params) |
|
100.00% | 1 / 1 | 1 |
|
100.00% | 1 / 1 | ||||||
register($class) |
|
0.00% | 0 / 1 | 2.02 |
|
83.33% | 5 / 6 |
1 : <?php 2 : /** 3 : * Fitxer que defineix la clase Rpc 4 : * @package WSFW 5 : */ 6 : 7 : foreach(glob('WSFW/protocols/Rpc/*.php') as $file) include_once $file; 8 : 9 : /** 10 : * Rpc defineix la clase que implementa el protocol RPC 11 : * @var string $request_url URL del client (interna) 12 : */ 13 : abstract class Rpc extends WSFW_Protocol { 14 : 15 : protected $request_url; 16 : 17 : /** 18 : * Inicialitza el client, únicament es guarda la direcció per poder fer les crides 19 : * Defineix la URL i crea els objectes necessaris per la connexió 20 : * @param estructura $params Paràmetres del client (URL) 21 : */ 22 : public function initClient($params) { 23 9 : $this->request_url = $params["url"]; 24 9 : } 25 : 26 : /** 27 : * Crida a un mètode del WS 28 : * @param string $method Nom del mètode 29 : * @param estructura $params Paràmetres de la crida 30 : * @return estructura Resposta 31 : */ 32 3 : public function call($method, $params){} 33 : 34 : /** 35 : * Crida RPC 36 : * Inclou el mètode i paràmetres codificats al cos del POST de la petició 37 : * Es guarda el resultat obtingut al cos del GET i el codifica 38 : * @param estructura $_data Paràmetres de la crida 39 : * @return estructura Resposta 40 : */ 41 : protected function rpc_call ($_data = null) { 42 7 : if ($_data) { 43 3 : $request = $this->encode($_data); 44 3 : $data = stream_context_create(array('http' => array('method' => 'POST', 'content' => $request))); 45 3 : $response = file_get_contents($this->request_url, false, $data); 46 3 : } else { 47 4 : $response = file_get_contents($this->request_url); 48 : } 49 7 : if ($response == false) 50 7 : return error("Error en la petición RPC"); 51 7 : debug("Call RPC request", $request); 52 7 : debug("Call RPC response", $response); 53 7 : $data = $this->decode($response); 54 7 : return $data; 55 : } 56 : 57 : /** 58 : * Inicialitza el servidor 59 : * Per crear el servidor RPC no és necessari crear objectes ni especificar paràmetres 60 : * @param estructura $params Paràmetres del servidor 61 : */ 62 3 : public function initServer($params) {} 63 : 64 : /** 65 : * Registra els serveis 66 : * Executa el mètode especificant els paràmetres a la classe del programador 67 : * @param object $class Instància de la classe del programador 68 : */ 69 : public function register($class) { 70 3 : global $phpunit_request; 71 3 : if ($phpunit_request) $request = $this->decode($phpunit_request, true); 72 0 : else $request = $this->decode(file_get_contents('php://input'),true); 73 3 : $response = $class->$request["method"]($request["params"]); 74 3 : echo $this->encode($response); 75 3 : } 76 : 77 : /** 78 : * Fonció de codificació de la crida 79 : * @param estructura $data Petició: Mètode i paràmetres 80 : * @return string Petició codificada 81 : */ 82 : abstract protected function encode($data); 83 : 84 : /** 85 : * Fonció de codificació de la resposta 86 : * @param string $data Petició: Mètode i paràmetres 87 : * @return estructura Resposta 88 : */ 89 : abstract protected function decode($data); 90 : 91 : } 92 : 93 : ?> |
Generated by PHP_CodeCoverage 1.0.3 using PHP 5.3.3-7 and PHPUnit 3.5.5 at Tue Jan 25 2:17:13 CET 2011. |