「Phalanger」の版間の差分

imported>Administrator
編集の要約なし
imported>Administrator
編集の要約なし
1行目: 1行目:
'''Phalanger'''とは、PHPのソースコードを[[Mono]]および[[.NET Framework]]向けのコンパイラである。
'''Phalanger'''とは、[[PHP]]のソースコードを[[Mono]]および[[.NET Framework]]向けのコンパイラである。
また、PhalangerにはVisual Studio Shellをベースとした無償のPHP統合開発環境(IDE)も含まれる。
また、PhalangerにはVisual Studio Shellをベースとした無償のPHP統合開発環境(IDE)も含まれる。


PHPアプリケーションのセキュリティ向上とパフォーマンス向上、および完全な64bit対応を主目的として開発が進められており、PHPソースコード品質検証ツールとしての意味合いも強い。
PHPアプリケーションのセキュリティ向上とパフォーマンス向上、および完全な64bit対応を主目的として開発が進められており、PHPソースコード品質検証ツールとしての意味合いも強い。


CLR版を用いてPHPソースコードをCILバイトコードに変換しておけば、プロプライエタリなアプリケーション向けの簡易的なソースコード難読化ソフトとしても使える。
[[CLR]]版を用いてPHPソースコードをCILバイトコードに変換しておけば、プロプライエタリなアプリケーション向けの簡易的なソースコード難読化ソフトとしても使える。


== 歴史 ==
== 歴史 ==
19行目: 19行目:


== CLR版とDLR版 ==
== CLR版とDLR版 ==
Phalangerプロジェクトではm事前にコンパイルを行う[[共通言語ランタイム]]([[CLR]])向けコンパイラと、実行時にコンパイルを行う[[動的言語ランタイム ]]([[DLR]])向けコンパイラの両方を提供している。
Phalangerプロジェクトでは、事前にコンパイルを行う[[共通言語ランタイム]]([[CLR]])向けコンパイラと、実行時にコンパイルを行う[[動的言語ランタイム ]]([[DLR]])向けコンパイラの両方を提供している。


CLR版は[[C Sharp|C#]]などと同様に事前にコンパイルし実行ファイルなどを生成する方式となっている。
CLR版は[[C Sharp|C#]]などと同様に事前にコンパイルし実行ファイルなどを生成する方式となっている。


DLR版は純正PHPと同様の使い勝手を実現したもの。インタプリタに近い。
DLR版は純正[[PHP]]と同様の使い勝手を実現したもの。インタプリタに近い。


なお、PhalangerプロジェクトではPHPアプリケーションのセキュリティ向上のためにも、Webアプリケーションの開発中はDLR版で手軽に、本番運用前にはCLR版で事前に完全にコンパイルが通り、警告なども完全に出ない状態にするのが望ましいとしている。
なお、PhalangerプロジェクトではPHPアプリケーションのセキュリティ向上のためにも、Webアプリケーションの開発中はDLR版で手軽に、本番運用前にはCLR版で事前に完全にコンパイルが通り、警告なども完全に出ない状態にするのが望ましいとしている。


== パフォーマンス ==
== パフォーマンス ==
Phalangerは純正のPHPよりも多くの場面で高速に動作する。
Phalangerは純正の[[PHP]]よりも多くの場面で高速に動作する。


Phalangerはパフォーマンスに重点をおいて開発されており、[[.NET Framework]](.NET仮想マシン)を用いる最大の理由も、コンパイル時にプラットフォーム非依存の最適化、実行時にプラットフォーム依存の最適化を行うなど、あらゆる時点でPHPプログラムを極限まで最適化するためである。
Phalangerはパフォーマンスに重点をおいて開発されており、[[.NET Framework]](.NET仮想マシン)を用いる最大の理由も、コンパイル時にプラットフォーム非依存の最適化、実行時にプラットフォーム依存の最適化を行うなど、あらゆる時点でPHPプログラムを極限まで最適化するためである。