XHP
Originalförfattare | Marcel Laverdet |
---|---|
Utvecklare | Metaplattformar |
Initial release | Februari 2010 |
Stabil frisättning | 4.1.0 / 18 november 2021
|
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 |
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
- Officiell hemsida
- xhp-lib på GitHub
- Kod före hästen - Information om installation, användning och bästa praxis för XHP
- Facebooks XHP-meddelande