PHPを使ってWindows/Mac/Linux上で動かすことができるネイティブデスクトップアプリを開発することができる「PHP Nightrain」と呼ばれるツールが公開されています(GitHub)。
公式サイトによると、様々なOSに対応しているだけではなく、CakePHP、Laravel、Drupalのような人気フレームワークにも対応し、PHPの特徴を最大限に生かしてデスクトップアプリが開発できるツールということ。
謳い文句の通りならばかなり凄そうなツールですが、いったいどんな秘密が隠されているのでしょうか。実際にMac版をダウンロードして動かしてみました。
初めてのPHP Nightrain
まず、公式サイトのDownloadから、「Mac OS X (Mavericks 10.9 and up) – App Version」をダウンロードし、アプリケーションフォルダにコピーします。
自作アプリを作成するには、「nightrain.app」を右クリックしてパッケージの内容を表示し「Contents/MacOS/www/index.php」を編集していきます。
ちなみにデフォルトの状態でindex.phpには「phpinfo();」と書かれていて、このまま動かすと最初の画面が表示されるわけです。
そこで例えばindex.phpの中身を「echo 'Hello World!」に書き換えると、Nightrain.appの画面にも「Hello, World!」と表示されます。
また「ontents/MacOS/settings.ini」をいじればPHPインタプリタを変更したり、起動時のフルスクリーンを制御したりすることもできます。
まとめ
サンプルを動かしているうちに「これって単にWebブラウザコンポーネントにPHPの実行結果を表示しているだけでは」と思えてきました。実際にNightrainのソースコードGUI.pyを確認すると、やはりwxPythonのWebViewを使ってPHPの実行結果をレンダリングしているようです。
PHPの実行結果を表示するだけならあらゆるプラットフォーム/フレームワーク/PHPのフル機能が使えても不思議はありません。
これでネイティブアプリを作成できる!と言い切るのはかなり強引な気がしますが、ポータブルなPHP実行環境として割りきって使えば便利な場面もあるかもしれません。