Capitulos de este wiki
  1. 1 Ejemplo PHPObject : contador vistas

Ejemplo PHPObject : contador vistas - Ejemplo PHPObject : contador vistas

1 - Ejemplo PHPObject : contador vistas

Tutorial creado por joangarnet. Extraido de: http://www.joangarnet.com/blog/?p=119
15 de Septiembre de 2006

PHPObject es una alternativa OpenSource a Flash Remoting.
La clave de PHPObject es que permite tratar clases PHP com si estuvieran definidas en nuestras aplicaciones ActionScript. Una vez instalado y configurado, el sistema simplifica enormemente el proceso de comunicación cliente-servidor.
La instanciación y llamada a métodos de las clases PHP se hace virtualmente en la película Flash.
Para ver el funcionamiento básico vamos a crear un simple contador de visitas que lee y escribe en un archivo de texto las visitas que se hacen en una página determinada.

Instalación:
Librerías ActionScript para PHPObject:
- Bajamos los archivos que conforman PHPObject.
( Para poder utilizar PHPObject necesitamos instalar la extensión que nos dará acceso al sistema )
- Instalamos la extensión que vayamos a utilizar (cerramos Flash primero). Yo instalo las dos: PHPObject_AS1.mxp y PHPObject_AS2.mxp para poder escoger según el player que quiera utilizar el cliente. (Se requiere Macromedia Extension Manager)
Con esto ya tenemos todo lo necesario en el lado cliente para desarrollar nuestro contador de visitas con PHPObject.

Antes de seguir bajamos los archivos que he preparado para el ejemplo (ver al final del post)

Preparando el terreno:
La parte servidor:
- Creamos una carpeta llamada contadorVisitas en la raíz de nuestro servidor web.
- Copiamos la carpeta server del package de PHPObject dentro de contadorVisitas.
- Creamos una carpeta llamada classes dentro de contadorVisitas
- Copiamos la clase ContadorVisitas.php de mi package en la carpeta classes.
Ya tenemos la estructura del lado del servidor montada

Configurando el gateway:
Lo primero que se debe hacer en una aplicación basada en PHPObject es definir unos pocos parámetros de configuración que van a permitir a Flash conversar con PHP.
Para hacerlo editamos el archivo /contadorVisitas/server/config.php y asignamos algunos valores:

PLAIN TEXT
PHP:
  1. // La ruta a las carpetas donde están las clases PHP
  2. // Pueden haber varias carpetas ($cfg['classdir'][1], etc..)
  3. $cfg['classdir'][0]= "/www/contadorVisitas/classes/";
  4. // Una clave secreta que todas las conexiones desde Flash deberán enviar.
  5. $cfg['useKey'] = "xx_clave_secreta_xx";
  6. // Aquí decimos si se puede conectar la aplicación desde el
  7. // player (false) o debe residir en un archivo .html (true)
  8. $cfg['disableStandalone'] = false;
  9. // Importante. Especifica si se utiliza codificación UTF-8 o no
  10. $cfg['multiByte'] = true;

Con esto ya tenemos el servidor listo, solo nos falta crear la página en Flash que activará el mecanismo de recuento/visualización de visitas.

Película Flash:
En el lado Flash, lo primero será incluir la librería (AS1.0) o importar las clases (AS2.0) de PHPObject (Este ejemplo es AS1.0).
A continuación configuraremos algunos parámetros necesarios como la ruta a la puerta de entrada defaultGatewayUrl, la clave de conexión defaultGatewayKey (que debe ser la misma que entramos en el archivo /contadorVisitas/server/config.php) o también convenientemente activar el soporte UTF-8 para caracteres latinos (entre otros...) con enableMultiByte.
Una vez hecho esto ya podemos instanciar PHPObject enlazando la clase PHP deseada, la cual debe estar en una de las rutas especificadas anteriormente en config.php.

Llamada / callback:
Una vez instanciada la clase, para cada llamda a un método de la clase remota debe haber (si es necesario) una función de retorno "callBack" definida desde la que podremos recibir parámetros convertidos "serializados" a ActionScript directamente desde PHP.
Esta es la magia real de este sistema. El hecho de despreocuparte totalmente de hacer conversiones mediante bucles y demás. Tansolo ejecutas un método ActionScript, y recibes datos de un tipo ActionScript. PHPObject se preocupa de todo lo demás por nosotros de una manera totalmente transparente e indolora :)

Código película Flash:

PLAIN TEXT
Actionscript:
  1. // incluímos la librería de PHPObject
  2. // AS1.0
  3. #include "PHPObject.as"
  4. // AS2.0
  5. //import com.ghostwire.phpobject.*
  6.  
  7. // creamos el campo de texto donde se verá todo el proceso
  8. this.createTextField ( "log", 1, 10, 10, 400, 300 );
  9. this.log.border = true;
  10.  
  11. // clave de conexión (la misma que hay en /contadorVisitas/server/config.php)
  12. _global.defaultGatewayKey = "xx_clave_secreta_xx";
  13. // definimos la ruta a la puerta de entrada
  14. _global.defaultGatewayUrl = "http://localhost/contadorVisitas/server/Gateway.php";
  15. // activamos el soporte utf8 para caracteres latinos ( ñ, ç, á, etc... )
  16. Serializer.enableMultiByte = true;
  17.  
  18. // Instanciamos PHPObject y lo enlazamos a la clase PHP
  19. var mi_contador = new PHPObject( "ContadorVisitas" );
  20. // Callback al instanciar y ejecutar el constructor de la clase.
  21. // La clase ya está inicializada y disponemos de las propiedades por defecto.
  22. mi_contador.onInit = function()
  23. {
  24.     log.text += "Clase inicializada!\n";
  25.     log.text += "* archivo: "     + this.archivo + "\n";
  26.     log.text += "* numVisitas: "    + this.numVisitas + "\n";
  27.     log.text += "\n";
  28. }
  29. // Callback. Este es el callback del método "vistasTotales".
  30. // [n_vistas] es el valor que devuelve el método.
  31. mi_contador.getVisitasTotales_onResult = function( n_visitas )
  32. {
  33.     log.text += "\n";
  34.     log.text += "Visitas totales: " + n_visitas + "\n";
  35.     log.text += "\n";
  36. }
  37. // Callback. Este es el callback del método "leeArchivo".
  38. mi_contador.leeArchivo_onResult = function()
  39. {
  40.     this.getVisitasTotales();
  41. }
  42. mi_contador.leeArchivo();

Archivos ejemplo PHPObject
zip

Enlace a la página de descarga de PHPObject:
* PHPObject

Enlaces relacionados:
* Flash Remoting

Sé el primero en opinar


Tutoriales relacionados con 'Ejemplo PHPObject : contador vistas'

La clave de PHPObject es que permite tratar clases PHP com si estuvieran definidas en... Más »

Autor y licencia de 'Ejemplo PHPObject : contador vistas'


Tutorial de joangarnet. Extraido de: http://www.joangarnet.com/blog/?p=119 CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.