HipHop for PHPでCakePHP2.1をC++にコンパイル
PHPをC++にコンパイルして高速化するHipHop for PHPですが、CakePHP2をHipHop上で実行したという話が公開されていました。
https://twitter.com/#!/jose_zap/status/163984577881313280
JoseはCakePHPのコアデベロッパの一人でこのHipHopに対応させる為のブランチの管理は彼が行なっていたようです。そもそもの問題としてHipHopは全てのrequireなどを静的に解決させる必要があり、動的な読み込みを行うフレームワークとは大変相性が悪いです。
このJoseの作成したプラグインはクラスのrequireリストを作成し、HipHopのコンパイラに与えることでフレームワークの動作を可能にするというアプローチをとっています。
大まかな手順は下記の通り。
- CakePHPのHipHopプラグインの導入
- クラスマップの生成
app/Console/cake HipHop.ClassPath
- フロントコントローラーの差し替え
cp `app/Plugin/HipHop/Config/webroot/index.php app/webroot/index.php
- コンパイルの実行
粘り強く個別の問題に対処した事が伺える手順が元のポストにあります。トリッキーな構造になっていなければCakePHP2のアプリをHipHop上で稼働させることができそうですね。ベンチマークが行われていないので興味がある方はぜひトライをしてみるといいのではないでしょうか。