XHP
( Apprenez comment et quand supprimer ce message ) XHP est une extension de PHP et Hack développée chez Meta (anciennement Facebook) permettant l'utilisation de la syntaxe XML p...
XHP est une extension de PHP et Hack développée chez Meta (anciennement Facebook) permettant l'utilisation de la syntaxe XML pour la création d'éléments HTML personnalisés et réutilisables . Disponible en tant que projet open source sur GitHub et module Homebrew pour PHP 5.3, 5.4 et 5.5, XHP a également développé une extension similaire pour JavaScript , nommée JSX .
Origines
XHP s'inspire librement d' ECMAScript pour XML et a été créé par Marcel Laverdet. Initialement développé pour Facebook Lite comme nouvelle couche de rendu d'interface utilisateur, il a ensuite été porté sur les plateformes web et mobiles de Facebook, ainsi qu'intégré à HipHop pour PHP . Mis à la disposition du public en février 2010 , il a représenté jusqu'en 2020 la quasi-totalité du code HTML généré côté serveur par les applications Facebook.
En 2020, Facebook a repensé son application web principale pour qu'elle fonctionne principalement avec des composants React, rendus côté serveur et côté client. XHP est encore utilisé dans certaines parties de Facebook, mais il s'agit d'une technologie ancienne en cours d'abandon.
Avantages
XHP offre une interface beaucoup plus propre pour la programmation d'interfaces utilisateur lors de la génération de HTML en PHP, mais présente également certains avantages techniques.
- Validation de la syntaxe HTML au moment de l'analyse
- XHP valide la syntaxe et la structure de l'ensemble de l'arborescence du document lors du rendu et lèvera une exception si un élément n'a pas été fermé correctement, a des enfants invalides, a un attribut invalide ou s'il lui manque des enfants ou des attributs requis.
- Protection automatique contre les attaques XSS
- Étant donné que tout le rendu de la page est effectué à l'intérieur de XHP, et que celui-ci sait ce qui est HTML et ce qui est du contenu, XHP échappe tout le contenu sans aucun effort particulier de la part du programmeur.
- Mutation d'objet
- Les objets XHP sont stockés en tant qu'objets PHP standard, ils peuvent donc être manipulés via une API de type DOM, qui comprend des méthodes telles que
setAttribute(),getAttribute(),appendChild(), et plusieurs autres avant ou pendant le rendu. - HTML personnalisé
- Au lieu d'écrire des fonctions pour générer du HTML, ou de jongler entre PHP et d'autres langages, il est possible de définir des éléments XHP personnalisés et de les mélanger avec des éléments HTML standard qui masqueront les structures HTML courantes.