GUI programming has always been of my interests, and I found
that Gtk+ is a very nice toolkit, except that programming with
it in C is somewhat tedious. After witnessing PyGtk and GTK-Perl
implementations, I decided to see if PHP could be made to
interface with Gtk+, even minimally. Starting in August of 2000,
I began to have a bit more free time so that is when I started
experimenting. My main guideline was the PyGtk implementation
as it was fairly feature complete and had a nice object-oriented
interface. James Henstridge, the author of PyGtk, provided very
helpful advice during those initial stages.
Hand-writing the interfaces to all the Gtk+ functions was out of
the question, so I seized upon the idea of code-generator, similar
to how PyGtk did it. The code generator is a PHP program that reads
a set of .defs file containing the Gtk+ classes, constants, and
methods information and generates C code that interfaces PHP with
them. What cannot be generated automatically can be written by
hand in .overrides file.
Working on the code generator and the infrastructure took some
time, because I could spend little time on PHP-GTK during the
fall of 2000. After I showed PHP-GTK to Frank Kromann, he got
interested and started helping me out with code generator work
and Win32 implementation. When we wrote the first Hello World
program and fired it up, it was extremely exciting. It took a
couple more months to get the project to a presentable condition
and the initial version was released on March 1, 2001. The
story promptly hit SlashDot.
Sensing that PHP-GTK might be extensive, I set up separate
mailing lists and CVS repositories for it, as well as the
gtk.php.net website with the help of Colin Viebrock. The
documentation would also need to be done and James Moore
came in to help with that.
Since its release PHP-GTK has been gaining popularity. We
have our own documentation team, the manual keeps improving,
people start writing extensions for PHP-GTK, and more and
more exciting applications with it.