AMFPHP y PHP 5.3

6 January, 2010 (16:14) | yacaFx | Actualizaciones, Flex

Como ya muchos saben AMFPHP lleva en el limbo cerca de 2 años cuando Wade Arnolds dejo el proyecto para colaborar directamente en la integracion de AMF con zend y en todo ese tiempo no ha existido algun update en el proyecto.

Recordemos que AMFPHP es una implementación PHP de AMF(Action Message Format) para poder hacer uso de PHP, en el caso de Flex a travez de Remote Objects y con Flash usando NetConnection.

Mientras tanto PHP como tal ha continuado con su evolución y derivado de esto en las instalaciones de AMFPHP haciendo uso de PHP 5.3 existen un par de errores que no permiten la correcta ejecucion de amfphp y podemos darnos cuenta de e esto al ejecutar el browser de clases pues nos arroja 2 errores.

El error arrojado es "Function eregi_replace() is deprecated" y esto es por que a la función eregi_replace() ya no se la dará soporte y en PHP 6 desaparecerá.

Esta función sirve para reemplazar cadenas de texto haciendo uso de expresiones regulares o strings; por lo que para poder solucionar este error podemos comentar las lineas de código (505 y 507)donde se muestra ese error o usar una función alternativa a eregi_replace() como puede ser preg_replace() y el código quedaria de la siguiente manera:

****************************************************
//Línea 505:
//Antes:
$comment = eregi_replace("\n[ \t]+", "\n", trim($comment));
//Después:
$comment = preg_replace("\n[ \t]i", "\n", trim($comment));

//Línea 507:
//Antes:
$comment = eregi_replace("[\t ]+", " ", trim($comment));
//Después:
$comment = preg_replace("[\t ]i", " ", trim($comment));

****************************************************

Al final tu método queda asi:

****************************************************
function cleanComment($comment){
$comment = str_replace("/**", "", $comment);
$comment = str_replace("*/", "", $comment);
$comment = str_replace("*", "", $comment);
$comment = str_replace("\r", "", trim($comment));
$comment = preg_replace("\n[ \t]i", "\n", trim($comment));
$comment = str_replace("\n", "\\n", trim($comment));
$comment = preg_replace("[\t ]i", " ", trim($comment));

$comment = str_replace("\"", "\\\"", $comment);
return $comment;
}
****************************************************

eregi_replace es usado en la clase MethodTable en el método cleanComment ubicado en la ruta core\shared\util dentro de la carpeta de amfphp. El objetivo de este método es eliminar los caracteres que indican comentario (// o /* */) en un código para mostrar dichos comentarios "limpios" en el Browser de Clases

Ya para concluir este post, AMFPHP a pesar de ser un proyecto que lleva parado cerca de 2 años sigue siendo bastante funcional y sigue en el gusto de mucha gente para integrar servicios de PHP con Flex o con FLASH, esperemos que reviva pronto, aun a pesar de existir ZEND o SABREAMF de los cuales hablaremos posteriormente.

Feliz año nuevo lleno de exitos y.... Happy Coding!!!!!!!
By yacaFx!!!

Comentarios

Comentario de Angel
Fecha: March 7, 2010, 11:55 am

Tu aportación me ha sido de gran ayuda, gracias, no daba con la solución. Estoy empezando con FLEX.

Comentario de yacaFx
Fecha: March 8, 2010, 5:46 pm

Que bueno que te fue de utilidad viejo!!! Cualquier duda no dudes en preguntarla por aquí en la lista del grupo.

Saludos

Escribir comentario