PHP-GTKをクライアントとして動作するGUIアプリケーションを
PHPで作成することができます。PHP-GTKの設計と実装は主として
Andrei Zmievskiに拠ります:
GUIプログラミングにはずっと興味を持ちつづけていて、あるとき
Gtk+というものが、Cでコーディングするにはあまりに面倒なものだ
ということを除けば非常にすばらしいものだと言うことを知りました。
PyGtkやGTK-Perlの実装を見て、PHPで(必要最小限の部分だけでも)
Gtkインターフェースを作成できないものだろうか、と考え始めたのです。
そして2000年の8月にちょっとした時間が出来たので実験を始めました。
私が主として参考にしたのはPyGtkの実装でした。というのもPyGtkは
ほぼ全ての機能を網羅していて、且つオブジェクト指向のすばらしい
インターフェースを持っていたからです。こうした最初の段階で
私はPyGtkの作者であるJmaes Henstridgeの有用なアドバイスを得ることが
出来ました。
Gtk+関数へのインターフェースを全て自作するのは問題外だったので
コードジェネレータというアイデアに飛びつきました。これはPyGtkと
同様の方法です。コードジェネレータとはGtk+のクラス、定数、そして
メソッドが記述されている.defsファイルを読み込みPHPへのインターフェース
となるCのコードを生成するPHPのプログラムです。自動的に生成することが
出来ない部分に関しては.overridesファイルに手動で追加していきました。
2000年の秋の間はあまり時間が取れなかったため、コードジェネレータ
やインフラの構築に長い期間がかかってしまいました。しかし
PHP-GTKをFrank kromannに見せると、彼は大いに興味を示して
コードジェネレータとWin32版の実装を手伝い始めてくれました。
最初のプログラムHello Worldを書いて、それが動作したとき
私たちはとても興奮しました。このプロジェクトが公開するに
足るものになるにはさらに数ヶ月が必要でしたが2001年3月1日に
最初のバージョンをリリースすることが出来ました。このニュースは
すぐにSlashDotにも載りました。
PHP-GTKはさらに拡張していくだろうと考え、私は専用のメーリング
リストとCVSリポジトリ、そしてCollin Viebrockの助けを得て
ウェブサイト(gtk.php.net)を用意しました。ドキュメンテーションは
目下進行中でJames Mooreが手伝ってくれています。
PHP-GTKはリリース以来徐々に広がっています。ドキュメンテーション
チームもは日々マニュアルを更新していますし、PHP-GTK用の拡張
モジュール、そしてPHP-GTKを使った興味深いアプリケーションを
作成する人も増えてきています。