前の記事 ≪:2011年2月23日 管理人のブックマーク
次の記事 ≫:Webサービス用にさくらのVPSサーバーを借りた後で役に立つ記事色々

PHP上で高速なJavaScriptプログラミングが可能になるV8利用PHP拡張

2011年02月24日-はてなブックマーク

スポンサード リンク
[PR] 英単語を忘却曲線アプリを使って超効率よく記憶する方法
PHP上で高速なJavaScriptプログラミングが可能になるV8利用PHP拡張がpeclにて公開されていましたので使ってみました。
その拡張名はV8js。spidermonkeyのjavascriptエンジンを使うものはありましたが、node.jsでも使われているv8エンジンを利用するものということで注目。
尚、利用にはPHP5.3.3以降が必要ですのでご注意。



V8のインストール
V8のインストールには、Subversion1.4、Python2.4以降、更にビルドツールとして SCons 1.0.0以降を使いますのでyum等パッケージツールでインストールして下さい。

Subversionでチェックアウトします
$ svn checkout http://v8.googlecode.com/svn/trunk/ v8

SConsでビルドします
$ scons library=shared snapshot=on
64bit マシンの場合は、arch=x64 を付けてください

ビルドオプションの詳細は公式サイト「How to Download and Build V8 - V8 JavaScript Engine」を参照

V8jsモジュールのインストール

ビルドした共有ライブラリをパスに移動します。

$ sudo cp include/*.h /usr/local/include/
$ sudo cp libv8_g.so /usr/local/lib/
$ sudo ln -s libv8_g.so libv8.so

パスは環境によって読み替えてください。

以上でV8の準備は出来たので、pecl コマンドでもいいのですが、ソースを落としてきてビルドします。

$ http://pecl.php.net/get/v8js-0.1.2.tgz
$ tar xzvf v8js-0.1.2.tgz
$ cd v8js-0.1.2
$ phpize && ./configure
$ make
$ make test
$ sudo make install

あとは php.ini に extension=v8js.so を追記します。
apache上で動かす場合は apache を再起動します。

サンプルを動かす
サンプルプログラムは以下。
V8Jsのインスタンスを作って executeString でJSのコードを渡すことで動作します。
<?php
$v8 = new V8Js();
$JS = <<< EOT
len = print('Hello' + ' ' + 'World!');
len;
EOT;
try {
  $v8->executeString($JS, 'basic.js');
} catch (V8JsException $e) {
  var_dump($e);
}
?> 
Hello World が表示されます。
尚、V8内部での処理は速いとしても、phpから呼び出す際のオーバーヘッドで普通にphpで書いたほうがいい、というのは言うまでもありません。

関連エントリ
関連の記事検索:PHP, v8
スポンサード リンク

By.KJ : 2011年02月24日 09:10 livedoor Readerで購読 Twitterに投稿

間違いの指摘をしていただける方はメール、あるいはTwitter/FBでお願いします(クリック)