「Phalanger」を編集中
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''Phalanger''' | + | '''Phalanger'''とは、[[PHP]]のソースコードを[[Mono]]および[[.NET Framework]]向けのコンパイラである。 |
− | + | また、PhalangerにはVisual Studio Shellをベースとした無償のPHP統合開発環境(IDE)も含まれる。 | |
− | |||
== CLR版とDLR版 == | == CLR版とDLR版 == | ||
− | Phalangerプロジェクトでは、[[PHP]]の[[ソースコード]]を事前に[[コンパイル]]を行う[[共通言語ランタイム]]([[CLR]] | + | Phalangerプロジェクトでは、[[PHP]]の[[ソースコード]]を事前に[[コンパイル]]を行う[[共通言語ランタイム]]([[CLR]])向けコンパイラと、実行時にコンパイルを行う[[動的言語ランタイム ]]([[DLR]])向けコンパイラの両方を提供している。 |
− | 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版で事前に完全にコンパイルが通り、警告なども完全に出ない状態にするのが望ましいとしている。 | |
== 互換性 == | == 互換性 == | ||
− | Phalangerは多くの[[PHP]] | + | Phalangerは多くの[[PHP]]アプリケーションを無改造で動かすことができる。 |
− | + | 公式サイトでは動作例として、WordPressやMediaWiki、phpMyAdmin、phpBBなどが紹介されている。 | |
− | |||
== パフォーマンス == | == パフォーマンス == | ||
Phalangerは純正の[[PHP]]よりも多くの場面で高速に動作する。 | Phalangerは純正の[[PHP]]よりも多くの場面で高速に動作する。 | ||
− | Phalangerはパフォーマンスに重点をおいて開発されており、[[.NET Framework]]( | + | Phalangerはパフォーマンスに重点をおいて開発されており、[[.NET Framework]](.NET仮想マシン)を用いる最大の理由も、コンパイル時にプラットフォーム非依存の最適化、実行時にプラットフォーム依存の最適化を行うなど、あらゆる時点でPHPプログラムを極限まで最適化するためである。汎用のコンパイラ・フレームワークとしての利用が第一目的であり、.NET Frameworkを用いる多くの言語で大きな特徴として取り上げられることの多い「異なるプログラミング言語間での連携」は二の次のような扱いとなっている。 |
== 歴史 == | == 歴史 == | ||
Phalangerはチェコ共和国のプラハ・カレル大学で始まった[[オープンソース]]・プロジェクトである。 | Phalangerはチェコ共和国のプラハ・カレル大学で始まった[[オープンソース]]・プロジェクトである。 | ||
− | 2008年に開催された[[Google Summer of Code]]において、[[Mono]]開発チームが[[Silverlight]]互換を目指す[[Moonlight]] | + | 2008年に開催された[[Google Summer of Code]]において、[[Mono]]開発チームが[[Silverlight]]互換を目指す[[Moonlight]]プロジェクトのデモンストレーションのひとつとして「Silverlightの中で動くPHP」を発表し、Phalangerは一躍注目されることとなった。 |
− | 2009年にはPhalanger開発チームを中心に[[Devsense]]社が設立され商用サポート業務も行われている。また[[Facebook]]上に開設された公式グループ(掲示板のようなもの)では活発な議論が繰り広げられている<ref>https://www.facebook.com/groups/295568806304/</ref> | + | 2009年にはPhalanger開発チームを中心に[[Devsense]]社が設立され商用サポート業務も行われている。また[[Facebook]]上に開設された公式グループ(掲示板のようなもの)では活発な議論が繰り広げられている<ref>https://www.facebook.com/groups/295568806304/</ref>。 |
* 2012年03月24日 - Phalanger 3.0 R3 公開 | * 2012年03月24日 - Phalanger 3.0 R3 公開 | ||
39行目: | 38行目: | ||
* [[IronPython]] | * [[IronPython]] | ||
* [[IronRuby]] | * [[IronRuby]] | ||
− | + | == 参考文献 == | |
+ | <references/> | ||
== 外部リンク == | == 外部リンク == | ||
* [http://www.php-compiler.net/ Phalanger公式サイト] | * [http://www.php-compiler.net/ Phalanger公式サイト] | ||
* [http://www.devsense.com/ DevSence公式サイト] | * [http://www.devsense.com/ DevSence公式サイト] | ||
− | |||
* [http://phalanger.codeplex.com/ Phalanger - The PHP Language Compiler for the .NET Framework] | * [http://phalanger.codeplex.com/ Phalanger - The PHP Language Compiler for the .NET Framework] | ||
* [http://www.facebook.com/group.php?gid=295568806304 Facebookグループ] | * [http://www.facebook.com/group.php?gid=295568806304 Facebookグループ] | ||
− | |||
− | |||
− | |||
− | |||
{{stub}} | {{stub}} | ||
− | |||
− |