PHP on sMash 第16回は、Groovy Bridgeです。前回はJava Bridgeを紹介しましたが、v1.1からGroovyのクラスを利用できるようになりました。これによって、既存資産がJavaであっても、Groovyであっても、そのクラスをPHPから利用してコードを書くことができるようになりました。それでは、始めていきましょう。
●概要
Groovy Bridgeの行い方は、基本的にJava Bridgeとほぼ同じで、クラスのインポートを行う関数がjava_importからgroovy_importに変わっただけです。Groovy特有の内容としては、インポート以外にも直接Groovyコードを実行できるgroovy_evalや、クロージャーを作成するgroovy_create_closureといった関数が用意されていることです。クロージャーはPHP5.3で利用可能になる予定ですが、sMashでは現在のところ、PHP5.2.3をベースとしているため、クロージャーを利用するにはこの関数を利用する必要があります。
とりあえず、最初は基本的な手順として、クラスをインポートして、そのクラスのメソッドを実行してみましょう。内容は、こちらのガイドとほぼ同様です。
●インポートするGroovyクラスを作成
まず、javaフォルダにImport.groovyとして、Groovyのクラスを1つ作りましょう。
class Import {
def public FIELD = "こんにちは!";
def public static VALUE = "Staticな値です";
def getMessage() {
return "関数です";
}
def static getStaticMessage() {
return "静的関数です";
}
}
次に、このクラスを利用するPHPスクリプトを書きます。ここでは、public/index.phpとします。
<?php
groovy_import("import.groovy");
//Staticな関数や値を操作する
echo Import::getStaticMessage()."\n";
echo Import::$VALUE."\n";
Import::$VALUE = "代入された値です";
echo Import::$VALUE."\n";
//クラスのインスタンスを生成して操作する
$foo = new Import();
echo $foo->getMessage()."\n";
echo $foo->FIELD."\n";
$foo->FIELD = "代入された値です";
echo $foo->FIELD."\n";
?>
作成できたら、アプリケーションを起動して、index.phpにアクセスしてみて下さい。次のように表示されていれば成功です。
静的関数です
Staticな値です
代入された値です
関数です
こんにちは!
代入された値です
このように、GroovyクラスをPHPから利用することができました。Groovy Bridgeの発表資料はslideshare.netで公開されていますので、ご覧下さい。

Leave a Reply