Marcel Laverdet, ingegnere di Facebook, ha annunciato il rilascio di un nuovo progetto, XHP, molto importante per lo sviluppo del frontend di Facebook.
Molto spesso quando si sviluppa il frontend di un'applicazione si mischia codice HTML e codice PHP in maniera poco ordinata o gestibile. L'alternativa è quella di utilizzare dei motori di templating, il più famoso dei quali è Smarty, per separare la logica dalla presentazione.
XHP è un'estensione per PHP che permette da una parte di scrivere codice per i vostri frontend in maniera più semplice e comprensibile, e dall'altra di proteggere i vostri form da attacchi cross-site scripting.
Con XHP, PHP sarà in grado di comprendere ed interpretare correttamente frammenti di codice XML.
Ma vediamo alcuni esempi. Questo è del classico codice HTML/PHP:
mentre questo è il codice utilizzando l'estensione 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>; }
Una cosa interessante da notare è che XHP comprende che le variabili di $_POST
Tra gli sviluppatori PHP c'è anche chi sostiene che questa estensione sia di gran lunga più interessante rispetto a HipHop, e che questa soluzione possa mettere fine alla diatriba templates vs. puro PHP
E a proposito di HipHop. Dopo l'annuncio di settimana scorsa repository
Per ora poco più che un file readme, ma a breve verranno pubblicati i primi sorgenti del progetto.
Why HipHop
One of the explicit design goals leading into HipHop was the ability to continue writing complex logic directly within PHP. Companies with large PHP codebases will generally rewrite their complex functionality directly as PHP extensions in either C or C++. Doing so ends up reducing the number of people who are able to work on the company's entire codebase.
HipHop is not the right solution for everyone deploying PHP. We think it will be useful to companies running very large PHP infrastructures who do not wish to rewrite complex logic within C or C++.
Intanto potete guardare la registrazione del tech talk della scorsa settimana.