Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
Organización de Lenguajes y Compiladores 2
Phalanger, un compilador
PHP-Silverlight
Phalanger y su proceso para compilar código PHP a lenguaje de
contenido interactivo Microsoft Silverlight
200412975
2008
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Índice
Contenido Página
Introducción 3
Microsoft Silverlight 8
El proyecto Phalanger 9
Ejemplo propuesto 11
Conclusiones Generales 13
Recomendaciones 13
Bibliografía 13
2
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Introducción
Luego, veremos como surge la herramienta Phalanger como una alternativa para unir
todas las bondades del lenguaje PHP a uno de los entornos más utilizados para
desarrollo web actualmente como .NET.
Una vez tengamos una visión general de la herramienta Phalanger, haremos énfasis en
como utiliza el proceso de compilación, tanto en análisis y síntesis para poder tomar
código PHP y convertirlo en un lenguaje entendible por .NET.
Por último, Con el código .NET generado a partir de PHP con Phalanger, veremos como
unirlo con la tecnología Silverlight para poder generar contenido dinámico e interactivo
en la web, con la ayuda de archivos con estructura XML.
3
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Objetivos
Generales
Específicos
4
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Uno de los inconvenientes en las primeras versiones de la web es que mucho del
contenido de las páginas era estático, es decir, el contenido siempre era el mismo
independiente de la solicitud echa por el usuario. Ésto hacía que muchas veces el
contenido manejado por los diversos sitios no estuviera actualizado y consistente.
Una de las herramientas para generar dicho contenido es PHP ya que gracias a su poder
y flexibilidad brinda todas las herramientas para poder generar contenido dinámico e
interactivo en una plataforma a la vez tan cambiante como la web.
En los últimos años, Microsoft ha querido dar un auge en el desarrollo web mediante
distinto tipo de tecnología, en particular con su plataforma .NET, haciendo uso de su
aplicación Silverlight para la generación de contenido dinámico e interactivo.
5
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Marco Teórico
Dentro de las etiquetas de inicio y fin de PHP se encuentra el código que deseamos
ejecutar del lado del servidor, a diferencia de Javascript que se ejecuta del lado del
cliente (por medio de Java Runtime Environment), todo el código PHP se ejecuta del
lado del servidor, incluso, es posible configurar el servidor para que procese todo
HTML cargado mediante PHP.
Aunque su uso pueda parecer complicado al inicio, al descubrir PHP a fondo podemos
ver que nos ayuda de diferentes formas: es multiplataforma, quiere decir que no importa
en el sistema operativo en el cual desarrollemos siempre lo podemos tomar en cuenta.
Al ser de código abierto, podemos tener acceso a múltiples foros e índices en donde
podemos encontrar información valiosa de cómo implementar una solución utilizando
PHP; soluciones que van desde soporte a base de datos, protocolos web, LDAP para
versionamiento de software, etc.
Sabiendo que PHP es un lenguaje, que puede ser incrustado dentro de páginas HTML y
todos los beneficios que trae (manejo de bases de datos, soporte para distintos
protocolos, etc.) , veamos la característica que más nos interesa por el momento, el
contenido dinámico.
6
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
PHP
En este foro, podemos ver que la página de inicio fue hecha con PHP:
Esto permite tener un control sobre el contenido que se genera en forma dinámica sobre
las diferentes categorías que se encuentran en el sitio:
PHP también ayuda a los administradores del sitio a mantener cierto orden en las
conversaciones y comentarios que los diferentes usuarios colocan en las distintas
categorías del sitio, dichas conversaciones y comentarios obviamente se generan en
forma dinámica.
El contenido PHP embebido en paginas HTML se ejecuta del lado del servidor que
aloja el sitio y presenta información actualizada en todo momento al usuario, lo cual es
valioso en un sitio de este tipo para tener siempre la versión “actual” de la pagina que el
visitante este navegando en ese momento.
7
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Microsoft SilverLight
Dentro de las características que hacen a esta herramienta tan útil y versátil se encuentra
la capacidad de crear contenidos completamente interactivos para el usuario, acá
podemos ver una muestra de ello:
8
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
El Proyecto Phalanger
Phalanger también puede operar sobre sistemas GTK que trabajan sobre sistemas
Linux, en entornos de programación como MONO que se utiliza para desarrollo de
código en C#, acá podemos ver una pequeña ventana en donde se ha incrustado una
instrucción PHP dentro de la aplicación:
Para poder incrustar componentes dinámicos en páginas HTML, Phalanger puede usar
archivos XAML para poder construir dichos componentes que serán entendibles por
Silverlight, y código PHP para encapsular su comportamiento.
Desde la versión 5 de PHP, podemos hacer uso de clases para poder manejar lo que se
denomina “un objeto” PHP, como se menciono anteriormente, en esta clase es en donde
se manejara la lógica o comportamiento de los componentes dinámicos que vayan a ser
construidos. Acá tenemos un pequeño ejemplo de una clase de este tipo:
9
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Phalanger
El segundo objetivo de Phalanger (el más importante para esta investigación), es hacer
que esta herramienta tome el código PHP, lo compile y obtenga como resultado código
que pueda ser consumible por aplicaciones de desarrollo como C#, o un modulo de
programación Silverlight.
Para poder consumir el código producido por Phalanger, tenemos que hacer uso de los
tipos ClrObject que no son más que instancias “internas”; en otras palabras, cada
ClrObject es una instancia de cada objeto PHP compilado.
ClrObjects
Clase PHP (Objetos
(Contiene compilados
Phalanger
los objetos y
originales) entendibles
por .NET)
10
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Ejemplo
Analisis Léxico
Analisis Sintáctico
Phalanger Analisis Semántico
11
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
El código generado será utilizado por Silverlight para manejar la lógica del componente
que será creado, para poder crear el manejador de la GUI debemos usar un tipo especial
de XML denominado XAML.
El archivo XAML puede usarse tanto para definir formas, como animaciones o
contenido interactivo en Silverlight.
Con el código .NET compilado con Phalanger y el archivo XAML, Silverlight puede
construir un componente dinámico e interactivo que puede ser incrustado en una
página phpx o aspx:
Contenido
dinámico
12
Universidad de San Carlos de Guatemala
Facultad de Ingeniería - Organización de Lenguajes y Compiladores 2-
Conclusiones Generales
Para solucionar lo anterior, surge el proyecto Phalanger, que trata de unificar todas o
muchas de las características de PHP para que éstas sean totalmente compatibles con el
entorno de desarrollo .NET. Phalanger no es más que un compilador que toma código
PHP y lo convierte a un lenguaje totalmente compatible con .NET.
Recomendaciones
Es recomendable realizar un análisis del tipo de información manejada por el sitio, ver
si es necesario incorporar contenido dinámico o simplemente implicaría tanto costo
como tiempo innecesario en su desarrollo y mantenimiento.
Estudiar a fondo las distintas posibilidades tanto en funcionalidad como costo de las
diversas herramientas existentes en el mercado para poder generar contenido en la web,
de ésta forma nos aseguramos que los recursos invertidos sean los apropiados.
Bibliografía
http://tomasp.net/blog/phalanger-future-notes.aspx
http://www.php-compiler.net/doku.php?id=php-in-silverlight
http://www.microsoft.com/silverlight/default.aspx
http://es.wikipedia.org/wiki/.php
http://www.php.net/
13