¡Salta! tm
Feed Estás viendo el archivo de la etiqueta: Incutio
Incutio XML-RPC Library II

Logotipo de IncutioMenuda paliza me he pegado esta noche con la biblioteca Incutio XML-RPC. Resulta que la versión que estaba utilizando, y que había medio adaptado para PHP 5, no era la última versión. Lo que pasa es que la última versión no la encontré en el sitio web de la biblioteca, sino en otro sitio web, de alguien que la "mantenía", por decirlo así.

En el sitio web de Incutio se encuentra la versión 1.6, que es la que yo había estado usando, y para la que incluso hube de solucionar algún problema, derivado de que estaba escrita en PHP 4. Sólo esto me costó un güeb, pero, es que luego descubrí la nueva versión... la 1.7, que, tenía solucionados algunos problemas.

No sólo eso, sino que, por ejemplo, la nueva versión añadía algo que yo había añadido por mi cuenta (es curioso, porque ambos "autores" añadimos exactamente lo mismo), así que, luego de haberme pegado una paliza, decidido a usar la nueva versión, hube de adaptar esta de nuevo a PHP 5. Total, que anoche me pegué una buena paliza entre unas cosas y otras.

Pero he tomado cierto control de la biblioteca, y pienso incluso en hacer algunos cambios por mi cuenta, en cuanto me sea posible, cambios de que informaré al autor, por si los estima oportunos, aunque, me da a mí que el autor no se preocupa demasiado de esta biblioteca, y no le culpo, puesto que la última versión es de 2005, y la que usaba hasta ayer de 2003.

Hasta el propio PHP (aunque todavía experimentalmente) incorpora ya una extensión para trabajar con el protocolo XML-RPC, lo que haría a la biblioteca en cuestión obsoleta, aunque, lo cierto es que sigo pensando que funciona muy bien. Creo que en cuanto me recupere de la paliza de ayer haré los cambios que estime oportunos y usaré esta biblioteca tal y como vengo haciéndolo.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software
Incutio XML-RPC Library

Logotipo de Incutio Desde que conocí la Incutio XML-RPC Library no he necesitado nada más cuando he tenido la necesidad de implementar un cliente o un servidor XML-RPC en PHP.

He usado la Incutio XML-RPC en todos mis últimos proyectos, y Gesbit, el que me ocupa últimamente, no podía ser menos. Implementar un cliente o un servidor con esta biblioteca es tan sencillo que resulta hasta divertido, porque, simplemente, funciona.

Desde mi proyecto "aPHP", sin embargo, hice cambios en la biblioteca (muy sencillos) para adaptarla a PHP 5, y, para Gesbit, he añadido un miembro "timeout" a la clase que implementa los clientes XML-RPC: IXRClient. Pero, como digo, lo que pasma es la sencillez de uso de Incutio XML-RPC Library. He aquí un ejemplo de cliente que prueba el único método público de esta misma bitácora, gestionada con Gesbit:

require('IXRLibrary.inc.php');
$entryPoint = 'http://www.bitacora.davidesperalta.com/xmlrpc/';
$xmlRpcClient = new IXR_Client($entryPoint);
if($xmlRpcClient->query('gesbit.getTime')){
  $result = $xmlRpcClient->getResponse();
}else{
  die($xmlRpcClient->getErrorMessage());
}

El código anterior usa la biblioteca Incutio XML-RPC tal cual, para PHP 4, y, como puedes ver, no puede resultar más sencillo ejecutar un método remoto, en este caso del servidor XML-RPC de esta bitácora. Pero, no te pierdas el servidor. Lo que verás a continuación es el código actual del servidor XML-RPC en Gesbit, que implementa (por su cuenta) el método "gesbit.getTime", que ejecutaba el cliente visto antes:

class GbXmlRpcServer extends IXRIntrospectionServer 
{
  public function __construct(){
    parent::__construct();
    $this->Initialize();
  }
 
  public function getTime(){
    return date('H:i:s');
  }
 
  private function Initialize(){
    $this->addCallback(
      'gesbit.getTime', 
      'this:getTime',
      array('string'),
      'Returns the current server time'
    );
    $this->serve();
    return true;
  }  
}

He quitado los comentarios para hacer notar aún más su sencillez. Y date cuenta además que estoy aprovechándome además de la clase "IXRIntrospectionServer" y no "IXRServer", puesto que aquella viene a ser una versión avanzada de esta. Como te digo, si la biblioteca Incutio XML-RPC no existiera habría que inventarla.

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software