Hello everyone,

For some time now, there has been talk of bringing the PHP-GTK documentation up-to-date. It's a great extension which suffers heavily from the lack of comprehensive and current documentation.

I've personally been poking at the process for well over a year now, but have had little success due to the difficulty that exists in recruiting people into a project which is suffering as it is. There has been a wiki page on the subject for about as long, available at http://wiki.php.net/php-gtk/gtkphd.

Having recently taken some time to join the PHP documentation team and familiarize myself with the documentation system, I'm feeling much more confident about the prospect of bringing the PHP-GTK documentation into line with the current documentation system.

I'd like to make a proposal to that effect. I'm requesting that we create a branch at http://svn.php.net/repository/phpdoc/doc-base/branches/php-gtk/, as well as http://svn.php.net/repository/phpdoc/en/branches/php-gtk/. The former would be to create a temporary fork of the docgen scripts in order to generate a good set of skeleton documentation for PHP-GTK, laying it out in a reasonable fashion. The latter branch would be the second part of the process, which is to work on adding PHP-GTK's documentation to the main manual, as an extension. Now, I realize that PHP-GTK seems like an entirely separate project from the main PHP project, but I think that's simply a matter of how it's been run until now.

PHP-GTK is, as any other, an extension to PHP. The way it functions may seem fundamentally different than how PHP itself does, but the reality is that it's simply creating a loop and interfacing with the GTK toolkit, as any SAPI might interface with a webserver.

As for the actual structure of this proposed set of documentation within the main manual, here's what I'm thinking:

PHP-GTK is fundamentally composed of a few different sub-extensions. There is, of course, the core of the extension, but as in PDO, there are extensions which add functionality to that.

Each part of PHP-GTK - that is, ATK, GDK, GTK, Pango and so on - would be a sub-section to the extension's documentation. Since the PHP manual is very hierarchical as it is, this shouldn't pose any problem at all.

Within each of these subsections, the respective classes would be listed, and any relevant introduction, as with any extension.

Unique - at least as far as I know - to PHP-GTK, in terms of PHP extensions, are two constructs. The first construct, which is very easy to mark up, is GObject properties. Essentially, these are properties inherited from the GObject class, which aren't directly available in the scope of the class. They are accessed via a getter and setter configuration. I'm not certain why the extension is configured this way, but it probably has something to do with the way GTK itself is designed. The second construct is the "signal". These are precisely what they sound like. The concept exists in other languages, but I don't know of any other extensions that make use of them. Basically, one connects a callback to a signal, and that callback is called when the signal is triggered by an action. That action might be, for instance, a user clicking a button. I imagine these could be marked up as a variant of methods.

So, I'm requesting your comments and criticisms on the subject, as well as requesting that anyone interested in helping pipe up, so I can gauge how much of this work I would have to do myself.

For quick reference, here's the brass tacks:

* Create two branches; one under doc-base, and one under en.
* Modify docgen to generate skeletons for PHP-GTK - I've already done most of the work for this already. * Fill in the documentation, borrowing what we cleanly can from the existing out-of-date documentation for PHP-GTK. * Merge the extension's documentation branch into trunk, once it's reasonably complete.

Thanks,
Justin Martin, a.k.a. FrozenFire

Reply via email to