Loading article…
| 原作者 | マルセル・ラヴェルデ |
|---|---|
| 開発者 | メタプラットフォーム |
| 初回リリース | 2010年2月 |
| 安定版リリース | 4.1.0 / 2021年11月18日[1] |
| リポジトリ |
|
| 書かれた | PHP、ハック |
| プラットフォーム | クロスプラットフォーム |
| タイプ | PHP ライブラリ |
| ライセンス | バージョン 2.6 より前: BSD ライセンス、バージョン 2.6 以降: MIT ライセンス |
| Webサイト | ブログ |
XHP は、 Meta (旧 Facebook) で開発されたPHPとHackの拡張機能で、 XML構文を使用してカスタムの再利用可能なHTML要素を作成できます。オープンソース ソフトウェアの GitHubプロジェクトとして、またPHP 5.3、5.4、5.5 用のHomebrewモジュールとして利用できます。Meta は、JSXというJavaScript用の同様の拡張機能も開発しました。
起源
XHPは、 ECMAScript for XMLに大まかに触発され、Marcel Laverdetによって作成されました。最初はFacebook Liteの新しいUIレンダリングレイヤーとして開発されましたが、後にFacebookのwwwおよびモバイルWebスタックに移植され、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()メソッドを含む DOM のような API を介して操作できますgetAttribute()。appendChild() - カスタム HTML
- HTML を生成する関数を記述したり、PHP を切り替えたりする代わりに、カスタム XHP 要素を定義して標準の HTML 要素と混合し、共通の HTML 構造を抽象化することができます。
参照
参考文献
- ^ 「リリース」. GitHub . 2023-02-03.
- ^ Laverdet, Marcel. 「XHP: PHP を書くための新しい方法」。Meta のエンジニアリング。Meta Platforms, Inc. 2023 年2 月 10 日閲覧。
- ^ N. Summers (2020-04-29). 「FacebookがFacebook.comを再設計した理由」Engadget。
外部リンク
- 公式サイト
- GitHubの xhp-lib
- Code Before the Horse - XHP のインストール、使用方法、ベスト プラクティスに関する情報
- FacebookのXHP発表
