「Phalanger」の版間の差分
3行目: | 3行目: | ||
== CLR版とDLR版 == | == CLR版とDLR版 == | ||
− | Phalangerプロジェクトでは、[[PHP]]の[[ソースコード]]を事前に[[コンパイル]]を行う[[共通言語ランタイム]]([[CLR]])向け[[コンパイラ]]と、[[インタプリタ]]風に扱える[[動的言語ランタイム ]]([[DLR]])向けコンパイラの2種類を提供している。 | + | Phalangerプロジェクトでは、[[PHP]]の[[ソースコード]]を事前に[[コンパイル]]を行う[[共通言語ランタイム]]([[CLR]])向け[[コンパイラ]]と、[[インタプリタ]]風に扱える[[動的言語ランタイム]]([[DLR]])向けコンパイラの2種類を提供している。 |
− | CLR版は[[C Sharp|C#]] | + | CLR版は[[C Sharp|C#]]などと同様に事前にコンパイルし実行ファイルなどを生成する方式となっている。 |
− | + | Phalangerは[[PHP]]で書かれたアプリケーションの[[セキュリティ]]向上と[[パフォーマンス]]向上、および完全な64bit対応を主目的として開発が進められており、CLR版はPHP向けソースコード品質検証ツールとしての意味合いも強い。また、[[CLR]]版を用いてPHPソースコードをCILバイトコードに変換しておけば[[プロプライエタリ]]な[[アプリケーション]]向けの簡易的なソースコード難読化ソフトとしても使える。 | |
− | DLR版は純正[[PHP]]と同様の使い勝手を実現したものであり、使い勝手は[[インタプリタ]] | + | DLR版は純正[[PHP]]と同様の使い勝手を実現したものであり、使い勝手は[[インタプリタ]]に近く、クラスや関数などは初回利用時に動的に逐次コンパイルが行われ実行される。なお、コンパイル結果物はキャッシュされ、クラスや関数を再度使用する際にはコンパイルは行われずにキャッシュを用いるため、多くの場面において非常に高速に動作する。 |
− | + | なお、PhalangerプロジェクトではPHPアプリケーションの[[セキュリティ]]向上のためにも、Webアプリケーションの開発中はDLR版で手軽に、本番運用前にはCLR版で事前に完全にコンパイルが通り警告なども完全に出ない状態にするのが望ましいとしている。 | |
== 互換性 == | == 互換性 == |
2013年3月19日 (火) 01:09時点における版
Phalangerとは、PHPのソースコードを、Monoおよび.NET Framework上での実行を実現するPHP実装である。 また、PhalangerにはVisual Studio Shellをベースとした無償の統合開発環境(IDE)も含まれる。
CLR版とDLR版
Phalangerプロジェクトでは、PHPのソースコードを事前にコンパイルを行う共通言語ランタイム(CLR)向けコンパイラと、インタプリタ風に扱える動的言語ランタイム(DLR)向けコンパイラの2種類を提供している。
CLR版はC#などと同様に事前にコンパイルし実行ファイルなどを生成する方式となっている。 PhalangerはPHPで書かれたアプリケーションのセキュリティ向上とパフォーマンス向上、および完全な64bit対応を主目的として開発が進められており、CLR版はPHP向けソースコード品質検証ツールとしての意味合いも強い。また、CLR版を用いてPHPソースコードをCILバイトコードに変換しておけばプロプライエタリなアプリケーション向けの簡易的なソースコード難読化ソフトとしても使える。
DLR版は純正PHPと同様の使い勝手を実現したものであり、使い勝手はインタプリタに近く、クラスや関数などは初回利用時に動的に逐次コンパイルが行われ実行される。なお、コンパイル結果物はキャッシュされ、クラスや関数を再度使用する際にはコンパイルは行われずにキャッシュを用いるため、多くの場面において非常に高速に動作する。
なお、PhalangerプロジェクトではPHPアプリケーションのセキュリティ向上のためにも、Webアプリケーションの開発中はDLR版で手軽に、本番運用前にはCLR版で事前に完全にコンパイルが通り警告なども完全に出ない状態にするのが望ましいとしている。
互換性
Phalangerは多くのPHPアプリケーションを無改造で動かすことができる。 公式サイトでは動作例として、WordPressやMediaWiki、phpMyAdmin、phpBBなどが紹介されている。
パフォーマンス
Phalangerは純正のPHPよりも多くの場面で高速に動作する。
Phalangerはパフォーマンスに重点をおいて開発されており、.NET Framework(.NET仮想マシン)を用いる最大の理由も、コンパイル時にプラットフォーム非依存の最適化、実行時にプラットフォーム依存の最適化を行うなど、あらゆる時点でPHPプログラムを極限まで最適化するためである。汎用のコンパイラ・フレームワークとしての利用が第一目的であり、.NET Frameworkを用いる多くの言語で大きな特徴として取り上げられることの多い「異なるプログラミング言語間での連携」は二の次のような扱いとなっている。
歴史
Phalangerはチェコ共和国のプラハ・カレル大学で始まったオープンソース・プロジェクトである。
2008年に開催されたGoogle Summer of Codeにおいて、Mono開発チームがSilverlight互換を目指すMoonlightプロジェクトのデモンストレーションのひとつとして「Silverlightの中で動くPHP」を発表し、Phalangerは一躍注目されることとなった。
2009年にはPhalanger開発チームを中心にDevsense社が設立され商用サポート業務も行われている。またFacebook上に開設された公式グループ(掲示板のようなもの)では活発な議論が繰り広げられている[1]。
- 2012年03月24日 - Phalanger 3.0 R3 公開
インストール
関連項目
- F# - F#の中の人が興味を示しPhalangerプロジェクトに参加している。
- IronPython
- IronRuby