XHP

XHP
Originalförfattare Marcel Laverdet
Utvecklare Metaplattformar
Initial release Februari 2010 ( 2010-02 )
Stabil frisättning
4.1.0 / 18 november 2021 ; 15 månader sedan ( 2021-11-18 )
Förvar
Skrivet i PHP , Hack
Plattform Cross-platform
Typ PHP bibliotek
Licens före version 2.6: BSD License , Från och med version 2.6: MIT License
Hemsida hhvm .com /blogg

XHP är en förstärkning av PHP och Hack utvecklad på Meta (tidigare känt som Facebook) för att tillåta XML- syntax i syfte att skapa anpassade och återanvändbara HTML- element. Den är tillgänglig som ett GitHub- projekt med öppen källkod och som en Homebrew- modul för PHP 5.3, 5.4 och 5.5. Meta utvecklade också en liknande förstärkning för JavaScript , kallad JSX .

Ursprung

XHP var löst inspirerad av ECMAScript för XML och skapad av Marcel Laverdet. Det utvecklades först för Facebook Lite som ett nytt UI-renderingslager men överfördes senare till Facebooks www och mobilwebbstack samt inkorporerades i HipHop för PHP . Den gjordes tillgänglig för allmänheten i februari 2010 och stod fram till 2020 för nästan all Facebook-apps genererade HTML på serversidan. [ citat behövs ]

2020 designade Facebook om sin primära webbapp för att köra mestadels på React-komponenter, renderade både på server- och klientsidan. XHP används fortfarande i delar av Facebook men är en äldre teknik som nu fasas ut.

Fördelar

XHP erbjuder ett mycket renare gränssnitt till UI-programmering när HTML matas ut i PHP, men har också vissa tekniska fördelar.

Parse-time validering av HTML-syntax
XHP validerar syntaxen och strukturen för hela dokumentträdet vid rendering och ger ett undantag om ett element inte stängdes ordentligt, har ogiltiga underordnade, har ett ogiltigt attribut eller saknar obligatoriska underordnade eller attribut.
Automatiskt XSS-skydd
Eftersom all rendering till sidan görs inuti XHP, och den vet vad som är HTML och vad som är innehåll, undkommer XHP allt innehåll utan någon speciell ansträngning från programmeraren.
Objektmutation
XHP-objekt lagras som vanliga PHP-objekt, så de kan manipuleras genom ett DOM-liknande API, som inkluderar metoder som setAttribute() , getAttribute() , appendChild() och flera andra före eller under renderingen.
Anpassad HTML
Istället för att skriva funktioner för att generera HTML, eller växla in och ut från PHP, kan anpassade XHP-element definieras och blandas in med vanliga HTML-element som abstraherar ut vanliga HTML-strukturer.

Se även

externa länkar