PHP上で高速なJavaScriptプログラミングが可能になるV8利用PHP拡張
2011年02月24日-
スポンサード リンク
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のコードを渡すことで動作します。
尚、V8内部での処理は速いとしても、phpから呼び出す際のオーバーヘッドで普通にphpで書いたほうがいい、というのは言うまでもありません。
関連エントリ
その拡張名は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で書いたほうがいい、というのは言うまでもありません。
関連エントリ
スポンサード リンク
Advertisements
SITE PROFILE
最新のブログ記事(新着順)
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 好きな画像や文字を埋め込んだQRコードをリアルタイムで作れるWEBツール
- 約7500種の汎用ピクトグラムアイコン集「Phosphor Icons」
- ほぼCSSで実装されたUIフレームワーク「Ellegant CSS」
- TailwindCSSベースの150種類以上のUIライブラリ「SailboatUI」
- 1700種類以上のSVGアイコン「MingCute Icon」
- 過去のエントリ