Estos últimos días Facebook sorprendió con el lanzamiento de HipHop y XHP… pero que son?
HipHop
Es un transformador de código fuente que toma el PHP, lo transforma hacia C++ y lo compila con g++ (compilador de C++). Y el resultado acelera la ejecución del código disminuyendo los recursos del servidor en un 50%. Concepto sencillo no?
HipHop está siendo utilizado en Facebook Lite y fué liberado bajo licencia opensource PHP.
Para más información podemos visitar la wiki del proyecto o el repositorio git, donde se pueden bajar el código fuente.
XHP
Según los responsables de Facebook, XHP es una nueva forma de programar con PHP que “aumenta la sintaxis del lenguaje para permitir que la escritura del código sea más rápida y fácil de entender y para ayudarte a evitar ataques Cross-Side Scripting (XSS)”.
Veamos un ejemplo de cómo la sintaxis de PHP ha cambiado con XHP:
<?php
if ($_POST[’name’]) {
?>
Hello, <?=$_POST[’name’]?.
<?php
} else {
?>
<?php
}
En el código anterior se presentan dos problemas, el primero y más obvio es que seremos víctimas de XSS. El segundo problema es que si olvidamos abrir o cerrar los tag PHP, nustra página generará un error.
Con XHP ambos problemas se resuelven:
<?php
if ($_POST[’name’]) {
echo Hello, {$_POST[’name’]};
} else {
echo
;
}
Este cambio en la sintaxis del lenguaje trae consigo algunas ventajas:
- Debido a PHP es ahora context-specific, sabe que cuando la variable $_POST es invocada la entrada de datos será HTML y por lo tanto debe escapar los caracteres.
- Incorporar XML dentro de la sintaxis PHP permite detectar errores con los markup en tiempo de parseo y no en tiempo de ejecución.
- Ahora a los XML se los puede asignar a una variable y manipularlos como un objeto cualquiera.
- Adicionalmente XHP permite definir nuevos tags, con lo que complejas secciones de código HTML, pueden ser ahora definidas como un nuevo marcador, desempleñando de hecho el XHP el papel de un sistema de templates.
XHP fue liberado bajo la misma licencia de HipHop y podemos encontrar el código fuente del proyecto en gitHub.
Visto en: Volkan Rivera












