Hace una semana Facebook presentó HipHop y ahora acaban de presentar XHP – una nueva extensión para PHP que simplifica el código PHP y mejora la seguridad del mismo,  ataques cross-site scripting por ejemplo.

Para apreciar XHP, mejor verlo con un ejemplo:

Código PHP:

<?php
if ($_POST['name']) {
?>
    <span>Hello, <?=$_POST['name']?>.</span>
<?php 
} else {
?>
    <form method="post">
    What is your name?<br>
    <input type="text" name="name">
    <input type="submit">
    </form>
<?php
}

Código PHP/XHP:

<?php
// note: includes omitted
if ($_POST['name']) {
  echo <span>Hello, {$_POST['name']}</span>;
} else {
  echo
    <form method="post">
      What is your name?<br />
      <input type="text" name="name" />
      <input type="submit" />
    </form>;
}

En el código, los includes se han omitido y podemos intuir que Facebook no utiliza ni un modelo MVC, ni plantillas para generar sus páginas. Pero XHP permite definir elementos, con lo que es posible condensar un componente complejo en un tag. Con ello, XHP se convierte un útil sistema de plantillas. Además, XHP tiene otras ventajas: errores en el código html son detectados y corregidos al generarse la página en el servidor.

En contra, el rendimiento utilizando XHP es menor tal como analiza Rasmus Lerdorf. Realizando una comparación de rendimiento de código PHP comparado con PHP+XHP y PHP comparado con PHP+XHP+APC, incluso con APC, el rendimiento es casi un 75% menor. Por otro lado, sí es posible mejorar el rendimiento de XHP utilizándolo conjuntamente con HipHop. En resumen, antes de utilizar XHP en proyectos, es aconsejable hacer pruebas de cada caso y proyecto.

Actualmente Facebook utiliza XHP en Facebook Lite