XHP

XHP
原作者マルセル・ラヴェルデ
開発者メタプラットフォーム
初回リリース2010年2月 (2010年2月
安定版リリース
4.1.0 / 2021年11月18日[ 1 ] ( 2021-11-18 )
リポジトリ
書かれたPHPハック
プラットフォームクロスプラットフォーム
タイプPHPライブラリ
ライセンスバージョン2.6より前: BSDライセンス、バージョン2.6以降: MITライセンス
Webサイトhhvm.com /ブログ

XHPは、 Meta(旧Facebook)で開発されたPHPHackの拡張機能で、 XML構文を用いてカスタムかつ再利用可能なHTML要素を作成できるようになっています。オープンソースソフトウェアのGitHubプロジェクトとして、またPHP 5.3、5.4、5.5用のHomebrewモジュールとして利用可能です。MetaはJavaScript向けにも同様の拡張機能であるJSXも開発しました。

起源

XHPはXML用のECMAScriptに大まかに影響を受け、Marcel Laverdetによって開発されました。当初はFacebook Lite向けの新しいUIレンダリングレイヤーとして開発されましたが、後にFacebookのwwwおよびモバイルウェブスタックに移植され、PHP用のHipHopにも組み込まれました。2010年2月に一般公開され[ 2 ]、2020年までFacebookアプリのサーバー側で生成されるHTMLのほぼすべてを占めていました。

2020年、Facebookは主要なウェブアプリ[ 3 ]を再設計し、サーバー側とクライアント側の両方でレンダリングされるReactコンポーネントを主に利用するようにしました。XHPはFacebookの一部のアプリで現在も使用されていますが、段階的に廃止されつつあるレガシーテクノロジーです。

利点

XHP は、PHP で HTML を出力するときに UI プログラミングに非常にクリーンなインターフェイスを提供しますが、エンジニアリング上の利点もいくつかあります。

HTML構文の解析時検証
XHP はレンダリング時にドキュメント ツリー全体の構文と構造を検証し、要素が適切に閉じられていない場合、要素に無効な子がある場合、要素に無効な属性がある場合、または必要な子や属性が欠落している場合は例外をスローします。
自動XSS保護
ページへのすべてのレンダリングは XHP 内で行われ、XHP は HTML とコンテンツを認識しているため、プログラマーが特別な努力をしなくても XHP はすべてのコンテンツをエスケープします。
オブジェクトの変化
XHP オブジェクトは標準の PHP オブジェクトとして保存されるため、レンダリング前またはレンダリング中の、、などsetAttribute()getAttribute()メソッドを含む DOM のような API を介して操作できます。appendChild()
カスタムHTML
HTML を生成する関数を記述したり、PHP を切り替えたりする代わりに、カスタム XHP 要素を定義して、一般的な HTML 構造を抽象化する標準 HTML 要素と混合することができます。

参照

参考文献

  1. ^ 「リリース」 . GitHub . 2023年2月3日.
  2. ^ Laverdet, Marcel. 「XHP: PHPの新しい書き方」 . Metaのエンジニアリング. Meta Platforms, Inc. 2023年2月10日閲覧
  3. ^ N. Summers (2020年4月29日). 「FacebookがFacebook.comを再設計した理由Engadget .