Thursday, May 24, 2012

PHPとJavaScriptのソース間でのロジックの共有

PHPがサーバサイドでJavaScriptがクライアントサイドだから、
まぁするとしたらJavaScriptからAjaxでパラメータを投げてPHPで処理して結果を返す、
みたいな流れがいいんだと思います。

でも短時間で何十回もそのロジックを使いたいときはどうするのか、
HTTPリクエスト出しすぎて超重いんですけどみたいな状態になるようであれば、
上記の方法はあまりとりたくありません。
(というかだいたい上記の方法で事足りて、ここであげてるようなケースは
極々稀じゃないのかとは思いますが)

PHPのコードをなんとかJavaScriptのコードまで変換できたらなぁとか思って、
Hiphop-phpでC++へ変換して、llvm-gccを使ってコンパイルして
llvm-disで逆アセしてemscriptenでJavaScriptに変換とか考えましたけど、
llvm-gccのバージョンが4.2、Hiphop-phpが要求するGCCのバージョンは4.3以上
ということで、試す間もなく挫折しました。
というかHiphop-phpで実行モジュール作る時に、色々なライブラリをリンクしてる時点で
JavaScriptのコードにまで変換させるのは無理じゃねっていう。

あれこれ考えてみたところ、Luaでコードを書いて、
PHP側ではPECLのLuaモジュールを使ってLuaのコードを呼び出す、
JavaScript用にはlua2js(https://github.com/mherkender/lua.js)を使って
LuaのコードをJavaScriptに変換して使う、
っていうやり方でいいかなという結論にしました。

ただPHP側にしろJavaScript側にしろ、Luaの関数等を呼び出すときの記述が
若干長ったらしいで、記述するめんどくささを緩和できるラッパークラスのような何かを
作る事が出来たらいいなと思っています。

No comments: